home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / GRAPHICS / RAYTRACING / POVRAY3 / POV3E-FI / Changes < prev    next >
Text File  |  1996-09-03  |  97KB  |  2,053 lines

  1. This file is a historical record of changes to POV-Ray 3.0 as we develop it.
  2.  
  3. 3.00e             09/03/96 Andreas Dilger
  4. Fixed problems with file input from stdin and file output to stdout.
  5. Fixed problem with PNG image maps.
  6. frame.h: Organized and added comments describing most constants.
  7.          Removed unused constant ANSIFUNC (not used in base POV code).
  8.          Since the changes are widespread, the whole file is included.
  9. Added new constants for calculations with M_PI (M_PI_2, M_PI_180, etc).
  10. Changed MAError prototype to use size_t instead of long to quiet warnings.
  11. UNIX: Fixed up prototypes and variable types to remove many compiler warnings.
  12.       Fixed problem with interrupt handler when writing to a broken pipe.
  13.       Fixed problem with dithering code for mosaic preview.
  14.  
  15. 3.00d             08/13/96 Dieter Bayer
  16. Fixed another heightfield bug and other minor heighfield changes.
  17.  
  18. 3.00c             08/07/96 Chris Young
  19. Fixed problem with some dda errors in height fields
  20. Fixed mem.c problems. ANSI C says you can't do math on void *
  21. Fixed octree problem with NULL ptr (perhaps twice. Two users submitted fix)
  22. Fixed line number bug.  Comments with // got double counted.
  23. MS-Dos Djgpp pow function work-around.
  24.     
  25. 3.00b             07/24/96 Andreas Dilger
  26. Fixed bug in 3.00a patch that did (void *) arithmetic for pov_memmove.
  27. Changed vbuffer.c to draw bounding boxes in white if palette is grayscale.
  28. Removed unused typedef from gifdecod.c which conflited with Linux SVGA.
  29. Linux SVGA: Added grayscale palette for preview, fixed video mode selection.
  30.  
  31. 3.00a             07/19/96 Andreas Dilger
  32. Fixed bug with new radiosity flags and saving empty radiosity _ot_tree.
  33. Fixed MEM_HEADER when only MEM_TRACE was defined in mem.c.
  34. Fixed mem_header to align on 8 byte boundaries for those machines that need it.
  35. Changed pov_realloc to free the memory when size = 0, and return NULL.
  36. Changed pov_memcpy() to pov_memmove() and made it work properly, and made
  37.      all instances of memmove to a new POV_MEMMOVE macro.
  38. XWINDOWS: Changed colormap handling to dynamically allocate colors.
  39.  
  40. 3.00              07/07/96 Chris Young
  41. Fixed another problem with camera "angle".  Scenes will look different
  42.      from both beta.7f and original beta.
  43. Fixed (partially) radiosity resumed traces so scene.rca isn't deleted
  44.      when there is a controled user abort.
  45. Changed version to 3.00 Note two zeros.  Future patches will be 3.00a, 3.00b
  46.      etc. and future public bugfix releases will be 3.01, 3.02 etc.
  47. Included spearate patch for DISTRIBUTION_MESSAGE for official compiles only.
  48. POVMSS.ZIP contains updated USER_xxx.DOC & CMPL_xxx.DOC files.
  49.  
  50. 3.0.beta.7k       07/03/96 Chris Young
  51. Fixed warning for camera inside object
  52. Added changes to tokenize.c for Windows from Chris Cason
  53.  
  54. 3.0.beta.7j       07/02/96 Chris Young
  55. Fixed polygon normal bug
  56. Added trap for negative sqrt
  57. Added trap for illegal mix of patterned and layered texture
  58. Changed distribution message text
  59. MSDOS: Removed beta expiration date. Added MS-Dos credits.
  60.  
  61. 3.0.beta.7i       06/27/96 Andreas Dilger
  62. Change 3d jitter code to remove redundant calculation via lookup table
  63.  (replaces crc lookup table).
  64. Remove the +Q10 and +Q11 options and replace them with +QR and a warning msg.
  65. Update png_pov.c to use new libpng API.
  66. Change compression setting for PNG to default from maximum since there was
  67.  little benefit and a considerable slowdown at the maximum compression.
  68. Fix bad memory free in TTF.
  69. UNIX: Fix up interrupt handling.
  70.       Remove useless calcs in dithering code.
  71.       Defer X dither-cube setup to reduce startup time and unnecessary calcs.
  72.  
  73. 3.0.beta.7h       06/26/96 Chris Young
  74. Fixed qsort macro in super.c
  75. Fixed error line number reporting in #while loop (again)
  76. MSDOS: Added changes for DJGPP v-2.0 including new pmode.a
  77.        and ztimer.a.  Requires old ld.exe linker and old go32.exe
  78.        to compile & link.
  79.  
  80. 3.0.beta.7g       06/21/96 Chris Young
  81. Fixed problem with // comments ending in \r but not \n
  82. MSDOS: Fixed 24-bit truecolor and VESA mode selection.
  83.  
  84. 3.0.beta.7f       06/21/96 Dieter Bayer
  85. Fixed bug in camera's angle keyword (the length of the direction vector was 
  86.  not calculated correctly. BEWARE!, old images using angle will look 
  87.  different)
  88. Fixed prism bug when the first height was larger than the second height
  89. Improved perpendicular camera vectors warning message
  90.  
  91. 3.0.beta.7e       06/16/96 Chris Young
  92. Added COOPERATE_0 calls for Mac version
  93. Fixed parsing dots count.
  94. MSDOS: Fixed DJGPP 1.x VGA support.
  95.        Minor change in Diamond 24X truecolor.
  96.  
  97. 3.0.beta.7d       06/13/96 Chris Young
  98. MSDOS ONLY
  99. Major rewrite of video code that is a combination of our old
  100. non-VESA code and new VESA 2.0 code submitted by Kendall.
  101. Both watcom and borland compiles and works for most modes.
  102. However DJGPP is totally messed up.  I plan to trash DJGPP
  103. and start over for DJGPP 2.0 rather than fix it for 1.14.
  104.  
  105. 3.0.beta.7c       06/13/96 Chris Young
  106. Note: Ignore previous 7c patch from Eduard.  Instead
  107.       unzip the enclosed zlib102.zip into source\zlib directory.
  108.       Then apply this patch which makes a minor change in zlib.
  109.  
  110. 3.0.beta.7b       05/27/96 Dieter Bayer
  111. Improved sor error messages
  112. Fixed bug with multiple halos using already declared halos
  113. Fixed bug in Rotate_Plane() (it's sufficient to rotate the normal
  114.  in case there's no transformation; speeds things up)
  115. Fixed bug that occured when a CSG object had no texture
  116.  
  117. 3.0.beta.7a       05/10/96 Chris Young
  118. Fixed image_map crash in POV3DEMO\SURFACE\WARP1.POV
  119.  
  120. 3.0.beta.7        05/02/96 Chris Young
  121. Added QSORT macro to frame.h, bbox.c & bsphere.c
  122. Updated version to beta.7.
  123.  
  124. 3.0.beta.6j       05/02/96 Dieter Bayer
  125. Added several fixes by Chris Young
  126. Changed dda_traversal() errors to debug messages
  127. Fixed blob lighting bug (increased surface threshold to avoid surface acne
  128.  due to surface points lying in shadow thought they actually are not)
  129. Fixed bugs in blob and mesh opacity tests
  130. Fixed bug in plane normal calculation
  131. Fixed problems in Copy_Ray_Containers (all entries were copied instead 
  132.  of copying only the valid entries).
  133. Fixed bug in Parse_Polygon() (we parse 3d points not 2d points, thus
  134.  we have to test 3d points when looking for closed polygons)
  135. Fixed bug in lighting code (distance based attenuation didn't work anymore)
  136. Fixed bug in Copy_Blend_Map() (New->Users must not be increased if it is
  137.  negative because a negative value is used to indicate that the map
  138.  is a default map that lies in the data segment and not on the heap.
  139.  Several successive copies of the map would lead to a positive Users
  140.  value and Destroy_Blend_Map() would try to free memory in the data
  141.  segment. That's not possible of course!)
  142.  
  143. 3.0.beta.6i       04/30/96 Andreas Dilger
  144. Fix problem with TTF accent centering.
  145. Fix problems with PNG flushing and added some more error checking.
  146. Fix zlib corruption thanks to zlib authors.
  147. Add source file location of smallest/largest alloc for MEM_STATS = 2.
  148. Remove test for arcsin as requested by Tim Wegner.
  149. Make X-Windows display code work properly during animations.
  150. Add MEM_STATS to UNIX config.h.
  151.  
  152. 3.0.beta.6h       04/21/96 Dieter Bayer and Chris Young
  153. Changed transformation functions (added trans parameter to pass precalculated
  154.  transform to speed up parsing)
  155. Fixed image map memory leaks (patch by Chris Young)
  156. Fixed bug in MEM.C (as reported by Eduard Schwan)
  157. Fixed bug that occured with polygons starting with co-linear points
  158. Fixed plane shearing bug
  159. Fixed cylindrical blob crack bug
  160. Fixed texture=NULL bug in initialize_ray_container_state() (in RENDER.C)
  161. Fixed lathe bug (too many intersections)
  162. Fixed height field dda_traversal() bug
  163. Fixed halo dust coloring bug (colors were ignored; see updated docs)
  164. Fixed ground fog bug (the density formula was wrong)
  165. Fixed bug in intersect_spotlight() in ATMOSPH.C
  166.  
  167. 3.0.beta.6g       04/15/96 Chris Young
  168. Fixed negative log problem.
  169. Prohibit slope_map when used in a pattern that can't use it.
  170. Fixed MEM.C problem from 6e that broke MEM_TRACE
  171. Includes Andreas' warn changes to make them official
  172. Added FRAME.H macro NEW_LINE_STRING so Write_INI_File
  173.  can output cr/lf vs just lf.
  174. Updated MS-Dos config.h to use MEM_STATS 1 and NEW_LINE_STRING
  175.  
  176. 3.0.beta.6f       04/16/96 Andreas Dilger
  177. Fix turbulence in fog distance attenuation calculation.
  178. Change rand() to use full precision, instead of 16 bits.
  179. Fix declaration of POV_DISPLAY_PLOT_BOX to match actual usage
  180. Fix #ifdef in mem.c for MEM_LOG_FNAME
  181. Allow escaping the comment ';' character in INI file settings
  182. Fix zero scaling check for matrix (again) - check columns instead of rows.
  183. Fix problem with Grayscale + Alpha PNG output
  184. Add missing destructors to close_all() for random, radiosity, fractal, histogram
  185. Fix Locate_file to not add FILENAME_SEPARATOR after DRIVE_SEPARATOR
  186. Force histogram grid size to divide into image size evenly
  187. Make a destructor for histograms
  188. Change hash table size to be a prime number.
  189. Removed #ifdefs from prototypes in truetype.c
  190. Cache some tables in truetype.c to speed parsing
  191. UNIX: Fix up man page
  192. SVGA: Add border and center SVGA display, allow non-power-of-two scaling,
  193.       add DISPLAY_PLOT_BOX function
  194. UNIX: Make interrupt handler only set Stop_Flag, instead of actually quitting
  195. XWIN: Don't force window to be centered, add DISPLAY_PLOT_BOX function, fix
  196.       DirectColor, fix PseudoColor palette selection
  197.  
  198. 3.0.beta.6e       04/10/96 Eduard Schwan
  199. Moved COOPERATE calls to more evenly called places in the bounding box and
  200.  vista draw areas.
  201. Added code to MEM.C and OPTOUT.C to track and display memory usage statistics.
  202.  Turn this on by adding a
  203.     #define MEM_STATS 1
  204.  to config.h.  To get even more stats printed, use
  205.     #define MEM_STATS 2"
  206.  I would suggest we ship with level "1" since that's all people will really
  207.  care about.
  208. Made the Contributing_Authors and Primary_Developers string arrays extern so
  209.  the GUIs can display the names in their own credits boxes if needed.  Filled
  210.  in the MEM.H header with MEM prototypes, removing from povproto.h, to be
  211.  more in line with C style. Added more header and code commenting in MEM.C.
  212. There was a bug in Radiosity for the GUI implementations, where the global
  213.  variables were not being reset each time main() was called.  If you set
  214.  radiosity ON, rendered a scene and prematurely interrupted it, then set
  215.  radiosity OFF & rendered a scene, it would crash at the end of the render
  216.  when trying to clean up the non-NULL ot_root variable, which now points to
  217.  freed memory.  So at the start of main, a new function Init_Rad_Globals()
  218.  is called which resets all globals.
  219. MAJOR NOTE!!! If you put global variables in POV-Ray, DO NOT initialize them
  220.  on the declaration line!  Create an initializer function and call it from
  221.  main().  That way, the GUI implementations will work correctly.  You can
  222.  no longer assume that globals will be set to their initial values every
  223.  time main() is called.
  224.  
  225. 3.0.beta.6d       04/07/96 Dieter Bayer
  226. Added hash table look-ups for Find_Reserved() and Find_Symbol() in tokenize.c
  227. Fixed atmosphere and halo dust color bug (now a color can be specified for
  228.  the atmosphere and halo dust that is used to filter light coming from
  229.  light sources; see docs for more detail)
  230. Fixed height field bugs (fixed holes that sometimes appeared; fixed gap 
  231.  between adjactent height fields; fixed surface acne that sometimes appeared) 
  232.  
  233. 3.0.beta.6c       03/29/96 Dieter Bayer
  234. Added fog to "camera is inside non-hollow object" warning
  235. Added code to automically adjust the right and up vectors if the orthographic
  236.  camera is used (if orthographic is used after all other camera parameters 
  237.  you'll get the same image area as with the perspective camera; see docs)
  238. Fixed severe bug in Determine_Apparent_Colour() (weight and texture lists
  239.  were not saved)
  240. Fixed bug in halo parsing (the color map was adjusted twice for declared halos)
  241. Fixed bug in halo code (appereance is now independent of any transformations 
  242.  applied to the container object)
  243. Fixed bug in bbox recomputing functions (added check for NULL pointer)
  244. Fixed bug in Inside_Prism()
  245. Fixed bug in blob code (individual component textures were not transformed
  246.  properly, i.e. they were not transformed with the object)
  247. Fixed bug in height field code (in dda_traversal())
  248. Fixed bug in random stream allocation
  249. Fixed bug in fog code (fog acne and floating point exceptions)
  250.  
  251. 3.0.beta.6b       03/19/96 Chris Young and Andreas Dilger
  252. Fixed substr bug.  Now will accept last character in string.
  253. Various cosmetic fixes from Andreas
  254. Added Andreas' revised matrix fix
  255. Fixed USHORT parameter problem in truetype.c
  256. Fixed DISTANCE_MAXIMUM parsing so zero is permitted
  257. See UNIXMSS6.ZIP for whole new Unix stuff.  No patches.
  258.  
  259. 3.0.beta.6a       03/17/96 Dieter Bayer, Steve Demlow and Tim Wegener
  260. Added warning when camera is inside any non-hollow object.
  261. Fixed bug in Parse_Prism() (Assign_UV_Vec was not used in one place)
  262. Changed file buffer size display (the file buffer size will be displayed 
  263.  only if the file buffer is actually used)
  264. Fixed the fractal object bounding box problem. 
  265. Fixed matrix bug (a value of 0 was changed to 1)
  266.  
  267. 3.0.beta.6        03/15/96 Chris Young 
  268. Minor cosmetic changes only in ms-dos specific areas
  269.  
  270. 3.0.beta.5l       03/14/96 Dieter Bayer
  271. Fixed bug in sky_sphere transformartion (used inverse transformation)
  272. Fixed bug with image maps and once option (light amplification) and
  273.  overlayed image maps (dark areas)
  274.  
  275. 3.0.beta.5k       03/13/96 Chris Young
  276. Fixed handedness bug that caused Moray problem.
  277. Put MAX_INCLUDE_FILES back from 25 to 10 (my mistake)
  278. Changed MAX_LIBRARIES from 10 to 25 as I intended
  279. MSDOS:Updates for CauseWay fast kbhit().
  280.       Note:Create SOURCE\MSDOS\WATCOM\CAUSEWAY and copy KBHITR.OBJ there.
  281.  
  282. 3.0.beta.5j       03/13/96 Dieter Bayer
  283. Fixed a bug in do_light_ray_atmosphere() (atmospheric attenuation wasn't
  284.  correctly handled when the viewpoint was inside a hollow object)
  285.  
  286. 3.0.beta.5i       03/10/96 Dieter Bayer
  287. Fixed another small halo bug (at last the halo's appearance is independant
  288.  from the sampling rate; I hope)
  289.  
  290. 3.0.beta.5h       03/10/96 Dieter Bayer
  291. Added atmosphere keyword to light source statement. By default light sources
  292.  do interact with the atmosphere. If "atmosphere off" is used with a light
  293.  source it is ignored by the atmosphere.
  294. Fixed minor bug in Do_Halo()
  295.  
  296. 3.0.beta.5g       03/04/96 Chris Young
  297. Changed get_byte() to gif_get_byte()
  298. Changed some parse error reporting procedures.  
  299. Close all input files before Terminate_POV.
  300. Complete all error stream activity before fatal shellout.
  301. MSDOS:Updated expiration date to 01/May/1996
  302. MSDOS:Updated makefiles for CauseWay DOS Extender
  303.       Do "wmake -f msdoswat.mak CW=1" for CauseWay.
  304.  
  305. 3.0.beta.5f       03/04/96 Dieter Bayer
  306. Added missing transformations to fog (affecting the up direction only).
  307. Changed status screen slightly (aa-options are only shown if aa is used etc.).
  308. Fixed bug that occured when -f +c was specified.
  309. Fixed bug with negative atmosphere distance.
  310. Fixed bug with polygons/prisms and multiple holes. Now any number of closed 
  311.  polygons/prisms can be used in a polygon/prism statement. You get a hole 
  312.  where an even number of polygons/prisms overlaps (Note the new syntax 
  313.  described in the docs).
  314. Fixed bug in halo code (halo appearance was dependent from number of samples).
  315. Fixed bug in halo code (light passing through the halo was not attenuated
  316.  by the halo).
  317. Fixed bug in halo code (attenuation of background light was hardly every
  318.  more than 75%)
  319. Fixed bug in render/lighting code (a halo was not rendered correctly when
  320.  the camera was inside the halo container).
  321. Fixed bug in camera vector calculations made when look_at was used.
  322. Fixed bug in camera parsing (POV-Ray now stops with a fatal error if the
  323.  camera location and look_at point are equal).
  324. Fixed bug in RENDER.C (precomputed camera constants were not recalculated
  325.  during different frames).
  326. Fixed bug in blob/lighting code (the textures/weights list was not correctly
  327.  re-allocated).
  328. Fixed bug with multiple, translucent image maps and once option.
  329.  
  330. 3.0.beta.5e       03/04/96 Chris Young & Andreas Dilger
  331. Fixed problem with redeclaring previously declared identifiers
  332. Added new #ifndef directive
  333. Fixed problem with default maps on brick, hexagon & checker
  334. Fixed radiosity and histogram memory leaks
  335. Fixed radiosity preview bug
  336. Fixed line number in #while loop
  337. Fixed #switch, #case, #range bug
  338. Added multi-component glyph support to ttf
  339. MSDOS Fixed mosaic problem when using too high res for video.
  340.  
  341. 3.0.beta.5d       02/27/96 Dieter Bayer
  342. Added random number to parser (keywords "seed" and "rand")
  343. Added transformations to sky_sphere
  344. Fixed bug in Parse_Blob() that caused a filtering object-level texture 
  345.  not to work correctly (an element-level texture did work though)
  346. Fixed bug with scaled spotlights (direction vector has to be normalized 
  347.  in Transform_Light_Source() in POINT.C)
  348. Fixed missing eccentricity keyword bug (used in halos)
  349. Fixed bug with ground fog (a negative offset moved the fog upwards while 
  350.  a positive moved it downwards)
  351. Fixed bug with subsets of cyclic animations (wrong clock values were calculated)
  352. Fixed bug in intersect_lathe() that caused a crash sometimes
  353. Changed ground fog to behave like "real" ground fog, i.e. the fog has a
  354.  constant density for all heights below fog_offset
  355. Changed behaviour of hollow statement in CSG objects
  356.  
  357. 3.0.beta.5c       02/23/96 Chris Young 
  358. Fixed problem with animation output file numbering.
  359. Added %p output path string to shellouts.
  360. NOTE: Macro FILENAME_SEPARATOR is now a char, not a string.
  361.       Check your config.h for this.
  362. Other path related changes.
  363.  
  364. 3.0.beta.5b       02/21/96 Chris Young and Andreas Dilger
  365. Fixed ttf problem with unsupported kerning type 128.
  366. Fixed smoothed mosaic for lines > 1280 
  367. Changed default extension handling per forum discussions.
  368. Fixed problem with default extension on output file.
  369. Changed radiosity TEMP_FILE_BASE to opts.Scene_Name.
  370. Allow "Option#value" in INI-style options as alternative to
  371.  "Option=value".
  372. Added APPEND_FILE_STRING macro.
  373. Permit commas in brick, checker and hexagon between pigments, normals
  374.  and textures.
  375. Changes to error messages when file not found.
  376. Turn equal ended cone into cylinder.
  377. Misc clean-up of error messages.
  378. MSDOS:Changed Watcom compile to link fpu emulation.
  379. UNIX:Misc changes from Andreas.
  380.  
  381. 3.0.beta.5a       02/13/96 Chris Young
  382. Fixed free(ptr) that should be POV_FREE(ptr) in octree.c
  383. Fixed memory leak in declared ttf objects
  384. Misc video changes in MSDOSVID.C; increased MAXMODES for VESA
  385. Changed expiration date from mm/dd/yyyy to dd-mmm-yyyy
  386. Substituted latest PMODE.H & DEBUG.H
  387.  
  388. 3.0.beta.5        02/07/96 Chris Young
  389. Fixed problem with gif decoder on lines longer than 2048 pixels
  390. Fixed bad error reporting when out-of-memory on calloc
  391. Fixed type cast problem in octree.c
  392. Changed beta test banner
  393. Fixed memory leak in declared material_map
  394. Various ttf fixes from Andreas
  395. Fixed watcom bug in zconf.h
  396. Updated all MS-DOS & Windows makefiles for rad_data.c
  397. Added beta expiration to MS-DOS
  398. Fixed +P in MS-DOS animations per DMF's design
  399. Misc Windows fixes for BC 4.52
  400. Added some (tm) signs, updated some copyright notices
  401.  
  402. 3.0.beta.4l       04/Feb/96  Jim McElhiney
  403. Major revision to all radiosity code
  404.   Better set of sample points, stored in new lookup file rad_cache.c
  405.   Multibounce radiosity now supported
  406.   Error bound now adaptive with max possible contribution to surface
  407.   radiosity Initialize/Deinitialize functions installed
  408.   Continue trace after interrupt now supported using <myfile>.rca
  409.     (Radiosity CAche file)
  410.   Free of all radiosity allocated memory after each frame
  411.   No more frame-to-frame cacheing bugs
  412.   Default value auto calculated for Radiosity_Dist_Max:  use 0 if unsure
  413.     (this necessitated saving the user's "look_at" value in camera struct)
  414.   Changed defaults to more general purpose values
  415.   Status line on console now reports new rad samples per line for
  416.     consistency with antialiasing messages
  417.   Preview parameters will not allow you to choose start/end sizes which
  418.     will mess up radiosity.
  419.   Jitter amount in radiosity is smaller, so preview looks better.
  420.   Irradiance gradients implemented, for better quality/speed ratio
  421.   Combination of area lights and radiosity now MUCH faster
  422. Misc:
  423.   VNormalizeEq is now faster, using mult not div
  424.   Light_List_Struct was used (locally) in 2 files for 2 purposes, which
  425.     messes up some debuggers.  One of the structures was renamed to be unique.
  426.   Light_List_Struct now saved and restored in Determine_Apparent_Colour to avoid
  427.     subtle non-reentrancy bug.  (trace a ray, which causes reflections at lower
  428.     level to tag light source contributions as done in light_tested_struct, then
  429.     pop back up to next level, and trace another ray--it used to reuse bad light
  430.     calculations from deeper ray at upper level if more light testing done)
  431.   Quick check in pov_shellout to avoid crashes when shellouts structure used
  432.     but not init'd (not sure why, but check is safer).
  433.  
  434.  
  435. 3.0.beta.4k       02/05/95 Dieter Bayer
  436. Updated "Copyright 1995 Persistence of Vision Team" to 1996
  437.  
  438. 3.0.beta.4j       01/29/95 Chris Young
  439. Fixed bug when #version used inside #if #else #end
  440.  
  441. 3.0.beta.4i       01/26/95 Dieter Bayer
  442. Changed keyword "surface_of_revolution" to "sor"
  443. Fixed bug with three or less focal blur samples
  444.  
  445. 3.0.beta.4h       01/25/95 Chris Young and Andreas Dilger
  446. One more ttf bug squashed.
  447. Misc prototypes added, unused variables removed. Minor junk.
  448.  
  449. 3.0.beta.4g       01/24/95 Chris Young and Andreas Dilger
  450. Replaced default READ_ENV_VAR and PROCESS_POVRAY_INI with warnings to
  451.  insure that each platform implements them.
  452. Updated libpng make files.
  453. Added "Include_Ini=file.ini" to ini parser for file names with blanks.
  454. Fixed TTF code to handle glyph spacing and spaces properly.
  455. TTF now uses the ISO 8859-1 (Latin-1) character set, but has support
  456.   for other character sets once we make the parser handle it.
  457. Still can't handle multiple component glyphs (most accented characters).
  458. Increased the length of a string constant to be up to 127 characters long.
  459.  
  460. 3.0.beta.4f       01/18/95 Andreas Dilger and Tim Wegner
  461. Added function calls to support libpng 0.87 error messages.
  462. Replace Libpng with version 0.87. Make sure Libpng gets copied
  463. to the correct places.
  464.  
  465. 3.0.beta.4e       01/17/96 Steve Demlow
  466. Cleaned up most non-K&R compatable code (except stdarg stuff in userio.c) and
  467.         compiler warnings
  468. Fixed TTF to work when sizeof(short) != 16 bits and sizeof(long) != 32 bits
  469. Fixed minor logic problems in TTF code (with help from Andreas Dilger)
  470. Changed TTF to do file error checking (thanks to Andreas Dilger)
  471.  
  472. 3.0.beta.4d       01/13/96 Dieter Bayer
  473. Fixed bug in total time/frame calculations
  474. Fixed bug in atmosphere calculation (intersect_spotlight())
  475.  
  476. 3.0.beta.4c       01/13/96 Chris Young
  477. Fixed problem with animation output file numbering with subsets.
  478. Fixed problem so string identifiers can be redeclared.
  479. Fixed problem with very long string concats.
  480. Moved "ambient_light COLOR" to global_settings{...} statement.
  481. Changed global_settings { irid_wavelength { COLOR } } to...
  482.         global_settings { irid_wavelength   COLOR   } 
  483. Created Print_Authors() routine from Usage()
  484. MS-DOS: Made banner stream scrollable; added Print_Authors() to sign on.
  485.         Disabled VESA debug.
  486.  
  487. 3.0.beta.4b       01/01/96 Chris Young
  488. Fixed problem with transforming tiles texture identifiers.
  489. Changes from Xander to fix one ttf bug.  Try those fonts that crashed.
  490. Changes from Andreas Dilger
  491.  Changed order of gamma_correct() and Clip_Colour() calls to avoid doing 
  492.   an exponentiation with a negative base (ie pixel value).
  493.  Added interrupt handler for UNIX systems to allow "safe" interruption of 
  494.   a trace with CTRL-C.
  495.  Modified PNG file output to avoid flushing when an output buffer is used.
  496.  Cosmetic changes.
  497.  
  498. 3.0.beta.4a       12/20/95 Dieter Bayer
  499. Changed halo stuff to use transmit instead of filter to store the differential
  500.   translucency instead of the differential opacity (change rgbf into rgbt
  501.   in all your halo scenes and replace the transmittance values by 1-values)
  502. Fixed bug that occured when resuming animations (all but the first image
  503.   were traced again)
  504. Fixed bug with multiple overlapping dust halos (light contribution was tested
  505.   for light rays too and not only for viewing rays)
  506. Fixed sampling bug when -a and +am2 was used (now -a always casts one 
  507.   non-jittered sample per pixel regardless of the sampling method)
  508.  
  509. 3.0.beta.4        12/08/95 Chris Young
  510. Removed build-in float constant "platform"
  511. Removed "#status" language directive
  512.  
  513. 3.0.beta.3l       12/05/95 Dieter Bayer
  514. Changed PNG_POV.C to compile under GCC 2.7.1 with bounds-checking extension
  515. Changed quilt_cubic() to return values between 0 and 1 (and not 0 and sqrt(3/4))
  516.  
  517. 3.0.beta.3k       12/04/95 Tim Wegner
  518. Modified julia_fractal slice field syntax. It is now:
  519.   julia_fractal {
  520.      ... other fields 
  521.      slice <NORMAL4D>,DISTANCE
  522.   }
  523.  where the 3-D slice "plane" is perpendicular to NORMAL4D and is DISTANCE
  524.  units from the origin. NORMAL4D is internally normalized so that DISTANCE
  525.  is correct. The following are illegal:
  526.    slice <0,0,0,0>,d (vector has length zero)
  527.    slice <x,y,z,0>,d (t coordinate of vector is zero)
  528.  The default value makes the slice "plane" the usual x,y,z space:
  529.    slice <0,0,0,1>,0
  530.  The slice plane is intersected the 4-D julia_fractal object and projected 
  531.  to 3-D space by dropping the fourth component of all points.
  532. Also added two small fixes for Chris in texture.c and pattern.c.
  533.  
  534. 3.0.beta.3j       11/23/95 Andreas Dilger
  535. Added flags to allow image file I/O routines to know how image is used.
  536. Changed PNG code to store 16-bit grayscales as true grayscales rather
  537.   than heightfields, when not used as a heightfield.
  538. Changed PNG code to only do input gamma conversion for image maps, and
  539.   to make the conversion to the assumed_gamma value of the scene.
  540. Changed PNG code to always write a 1.0 gamma chunk for histograms and
  541.   grayscale heightfields instead of 1.0/display_gamma.
  542.  
  543. 3.0.beta.3i       11/23/95 Dieter Bayer
  544. Fixed bug with superellipsoids used in CSG (this bug probably occurs in 03g
  545.  and 03h only)
  546.  
  547. 3.0.beta.3h       11/22/95 Chris Young
  548. Fixed problem in express.c with color vectors
  549. Added image_map{... transmit REG,VALUE} and transmit all VALUE.
  550. MSDOS: Started to implement VESA 2.0 but found other bug and fixed it.
  551.  
  552. 3.0.beta.3g       11/22/95 Dieter Bayer
  553. Fixed bug in ATMOSPH.C that occured when no light sources were used
  554. Fixed bug with transparent objects blocking background
  555. Fixed bug with transparent image maps (in TEXTURE.C) as mentioned by Chris Y.
  556. Fixed bug in superellipsoid intersection test (TRUE was returned in some
  557.   cases by All_Superellipsoid_Intersections() even though there was no
  558.   intersection)
  559.  
  560. 3.0.beta.3f       11/18/95 Chris Young
  561. Minor fractal changes by Tim Wegner
  562. Changed COEFF_LIMIT to 1e-16 fixing Watcom prism bug
  563. Fixed another #while bug
  564. MSDOS:Changed box params from char to int
  565.       Fixed DJGCC use of / in argv[0]
  566.       Added warning if POVINI points to non-existent fil
  567.       Fixed bug in Select_VESA_Mode.  
  568.       Added many Debug messages in VESA, will remove later.
  569.  
  570. 3.0.beta.3e       11/14/95 Chris Young
  571. Eliminate READ_ENV_VAR_BEFORE and READ_ENV_VAR_AFTER
  572. Added READ_ENV_VAR which should read a POVINI which points to the user
  573.  specified global INI file.
  574. Added PROCESS_POVRAY_INI function.  If there was no POVINI specified then
  575.  this routine should read povray.ini from the executible directory.  If
  576.  there was a POVINI then this step is skipped.
  577. Removed all other automatic processing of povray.def and povray.ini even
  578.  in the current directory.
  579. Converted Split_Time to SPLIT_TIME macro and added POV_Std_Split_Time
  580. Added pre_init_povray to povray.c, see comments on routine.
  581. Removed disabled field rendering for non-animations.
  582. MSDOS: Implemented MSDOS_Process_Povray_Ini and MSDOS_Process_Env
  583. PVENGINE: Partially pre_init_povray
  584.  
  585. 3.0.beta.3d       11/11/95 Dieter Bayer
  586. Fixed missing initialization for Jitter_X and Jitter_Y in 
  587.   trace_ray_with_offset() (RENDER.C) if no anti-aliasing is used
  588. Fixed bug in do_atmospheric_scattering() that led to a lot of unnecessary
  589.   neglectable samples 
  590. Fixed bugs in intersect_spotlight() and intersect_cylinderlight() in
  591.   ATMOSPH.C that caused lots of samples due to wrong light intervals
  592. Fixed bug in Trace() and Trace_Primary_Ray() that caused atmosphere
  593.   inside hollow objects to not work properly
  594. Fixed memory problems with high +r values and adaptive sampling
  595.  
  596. 3.0.beta.3c       11/09/95 Chris Cason
  597.   Modified userio.c to make vsbuffer global, to allow PVEngine to allocate
  598.   it and to thus call Usage () without starting up the renderer.
  599.  
  600.   Merged below patches from Andreas Dilger and Eduard Schwan.
  601.  
  602.   Eduard Schwan
  603.  
  604.     Fixes to truetype.c to make it Mac-friendly, by using READ_FILE_STRING
  605.     for the open mode instead of "rb". Changed vbuffer.c such that the function
  606.     POV_Std_Display_Plot_Box () takes int parameters for the colours, instead
  607.     of chars.
  608.  
  609.   Andreas Dilger
  610.  
  611.     Moved histogram size initialization code from initialize_histogram() in
  612.       render.c to fix_up_rendering_window() in povray.c so that the values
  613.       are available when doing the Print_Options() call.
  614.     Changed the default histogram file name to have the correct extension
  615.       if the user doesn't supply the histogram file name.  This is done at the
  616.       options parsing stage so the filename is available for Print_Options().
  617.     Added missing histogram CSV file type to help screen display.
  618.     #defined out code in radiosit.c and pattern.c that was unused.
  619.     + Fixed unix config file header to match current default settings, and tried
  620.       to get better default settings for maximum filename length.
  621.     Added xwindows options to unix makefile, so only one makefile is needed.
  622.     Removed unused variables from xwindows.c.
  623.  
  624. 3.0.beta.3b       11/08/95 by Chris Young
  625.  Added box drawing macro POV_DISPLAY_DRAW_BOX to frame.h and created
  626.  default POV_Std_Display_Draw_Box.  Needed for MSDOS version.
  627.  Renamed Terminate to Terminate_POV and fixed param
  628.  Changed Split_Time params to unsigned in hopes of fixing Amiga problem.
  629.  MSDOS:Added non-dithered box drawing. Changed subset window to green.
  630.  Fixed PNG image map palette size for grayscale images with bit-depth <= 8.
  631.  Changed the method of promoting 9-15 bit OutputQuality images to fit in
  632.   16-bit colors from high-bit-set to zero-fill based on recommendations
  633.   from the PNG 0.90 specification.
  634.  
  635. 3.0.beta.3a       11/06/95 by Dieter Bayer
  636.  Uncommented debug stuff in TRUETYPE.C
  637.  Fixed bug in hfield.c/boxes.c that caused segmentation fault with DJGPP
  638.  Fixed problems with comp_elements() in BSPHERE.C as suggested by Andreas Dilger
  639.  
  640. 3.0.beta.3        10/31/95 by Chris Young
  641. Fixed yet another #case bug.
  642. Fixed memory leaks on multiple color_maps
  643. Fixed problem with "once" on image_maps
  644. Fixed text buffer overflow that made long smooth_triangle error msg crash
  645. Added truetype changes from Steve & Xander
  646. Added ALT_WRITE_INI_FILE macro for below
  647. WIN: Fixed rerun problem with above macro
  648.  
  649. 3.0.beta.2g       10/23/95 by Chris Cason
  650. Numerous changes to support Windows code.
  651.   In set_output_file_handle (), removed test where the output file handle
  652.     was only set if output_to_file was TRUE to fix problem with GPF's in
  653.     continue trace.
  654.   Moved some typedef's, #defines, etc., from OPTIN.C to OPTIN.H.
  655.   Exposed some formerly static functions/variables in OPTIN.C.
  656.   Changed order of inclusion of OPTIN.H/OPTOUT.H relative to POVRAY.H in
  657.     some modules as OPTIN.H and OPTOUT.H depend on a typedef in POVRAY.H.
  658.   Removed most #if PRECISION_TIMER_AVAILALE tests that had been peppered
  659.     throughout the code by a previous patch in line with the team's policy
  660.     of keeping the use of #ifdef and so forth in the source code to a mimimum.
  661.   Re-introduced these defines to one specific area of the source (the
  662.     histogram code section).
  663.   Added new function initialise_histogram() which will set opts.histogram_on
  664.     to FALSE if PRECISION_TIMER_AVAILALE == 0. Calls to histogram code are
  665.     only made if opts.histogram_on is TRUE.
  666.   Re-introduced sanity-check and auto grid sizing code in histogram
  667.     initialisation that had been removed by a previous patch.
  668.   Added some new #DEFINE's to FRAME.H, called from POVRAY.C, to support
  669.     GUI's being able to get control at specific times (such as immediately
  670.     before rendering begins, to allow PVENGINE to write its own rerun
  671.     information.) These are -
  672.  
  673.       POV_PRE_RENDER      Called immediately before rendering begins.
  674.                           Hook any code that needs to access global data
  675.                           prior to rendering and/or write or display run-
  676.                           specific statistics into this.
  677.       POV_PRE_SHUTDOWN    Called just before shutdown (before destruction
  678.                           of any information held in memory.) Hook any code
  679.                           that needs to access this global data after
  680.                           rendering into this.
  681.       POV_POST_SHUTDOWN   Called after destruction of above is complete.
  682.                           Hook any platform-specific destructors into this.
  683.  
  684. 3.0.beta.2f       10/16/95 by Chris Young
  685. Fixed #switch #case bug.
  686.  
  687. 3.0.beta.2e       10/16/95 by Dieter Bayer 
  688. Changed hollow keyword from a finish parameter to an object parameter
  689.   (with changing all corresponding sources bugs with translucent 
  690.    material maps should be gone)
  691. Fixed bug with BLOB1?.POV scenes
  692. Fixed bugs in Read_Png_Image() in PNG_POV.C (png_ptr was used instead
  693.   of r_png_ptr; that caused a segmentation fault with PNG image maps)
  694.   Andreas Dilger or Timothy Wegener PLEASE VERIFY THIS!!!
  695. Fixed gradient and crackle bugs (hopefully; in some cases lots of 
  696.   speckles appeared)
  697. Fixed memory leakage in XWINDOWS.C
  698. Fixed "pause when done"-bug in XWINDOWS.C (the display window is now closed
  699.   for -p and closed after pressing a mouse button in the window for +p)
  700. Fixed bug in PPM.C that caused a segmentation fault when an aborted 
  701.   PPM image was read
  702. Fixed supersample count bug with adaptive supersampling (the number of
  703.   supersamples on the last line were displayed to be always 0)
  704. Fixed bug in halo parsing (as noted by Chris Young)
  705. Fixed bug in halo parsing (now a fatal error occurs if no color map is specified)
  706. Fixed bug in do_atmospheric_scattering (sampling took a very long time
  707.   for non-white light sources because early exit did not work)
  708. Fixed bug in OCTREE.C that occured when RADSTATS was defined (the file
  709.   no longer compiled as reported by Eduard Schwan)
  710.  
  711. 3.0.beta.2d       10/10/95 by Chris Young
  712. Added built-in identifier t=<0,0,0,1> and vector.t capability.
  713. Fixed stuff with vector.u and vector.v.
  714. Lots of internal changes related to t, u & v.
  715. Fixed msdos error buffer problem.
  716. Following changes from Andreas Dilger
  717.  Changes error messages in iff.c, gif.c, and targa.c to be consistent with 
  718.   other formats.
  719.  Added tests for output file write errors (after c.g.r.r)
  720.  Adds histogram timer for unix systems.
  721.  Adds support for PNG images with both grayscale and alpha.
  722.  Changed error messages to be consistent with other formats.
  723.  Adds support for ASCII format PPM and PGM images, as well as
  724.   allowing comments and arbitrary bit depth in input images.
  725.  Added defined out code for PPM output comments ala PNG.
  726.  Fixed histogram support for non-PNG images.  Added output
  727.   of histogram options in banner when histogram is active.
  728.  Modified output of display gamma to be part of display options.
  729.  Fixes resume from a file which has different size settings than those 
  730.   given on the command line.
  731.  
  732. 3.0.beta.2c       10/06/95 by Dieter Bayer 
  733. Applied noise patch by ? solves platform dependent noise problems)
  734. Added missing module headers to OCTREE.C and RADIOSIT.C
  735. Fixed bug in hfield.c (holes appeared due to missing rays)
  736. Fixed memory leak occuring with material maps
  737.  
  738. 3.0.beta.2b       10/05/95 by Andreas Dilger and Tim Wegner 
  739. Added gamma support. 
  740.   New ini option
  741.     Display_Gamma=2.2 (default, can be changed in config.h)
  742.   New scene command: global_settings { assumed_gamma n.nn }
  743.     If not present, no gamma correction done. For platform-independent
  744.     output without gamma correction, set assumed_gamma to display_gamma 
  745.     (e.g. 2.2). For "linear light" (gamma correction for display_gamma) 
  746.     use assumed_gamma 1.00.
  747. Added PNG histogram output. IMPORTANT - changes the +HT flag
  748.   so that +HTN means PNG histogram, and not NO histgram. No histogram
  749.   is now +HTX.
  750. Fixed bug in Close_PPM_File, changed default RENAME_FILE command
  751.  
  752. 3.0.beta.2a       10/04/95 by Dieter Bayer 
  753. Fixed illegal quality value bug for quality values larger 9
  754. Fixed unused radiosity bug for quality values > 9
  755. Fixed memory leaks with text objects
  756. Fixed bug in image reading (line_data->transm wasn't initialized to NULL
  757.   in PNG_POV.C and TARGA.C)
  758.  
  759. 3.0.beta.2        09/24/95 by Dieter Bayer 
  760. Fixed numerical problems with far away blobs
  761. Fixed bug with high +r values (Primary rays were weighted with an ADC
  762.   bailout value other than 1. That's not allowed!)
  763. Fixed bug in ra_gather() in RADIOSIT.C (ray wasn't initialized using
  764.   Initialize_Ray_Containers())
  765. Fixed bug in HCMPLX.C as mentioned by Tim Wegner
  766.  
  767. 3.0.beta.1e       09/21/95 by Eduard Schwan
  768. Minor changes to resynch the Macintosh compile:
  769. PAT3b1e.pat
  770.  optout.h: included frame.h, since I include it elsewhere, it needs the
  771.   definition of PARAMS().  I personally think EVERY header file should
  772.   be able to be compiled by itself, which means it needs to include
  773.   everything necessary for itself.  Then you can just add an include of
  774.   it, and it takes care of its own dependencies.
  775. PATzlb1e.pat
  776.  Zlib: added #ifndef around deflate.h, added include of string.h and a
  777.   define of Byte to something else in zconf.h, undeffed internal_state
  778.   in deflate.h.
  779. PATpng1e.pat
  780.  libpng: added missing prototype for "png_output_flush" in png.h
  781. To be fixed later... I also got these warnings in LIBPNG, which should
  782. probably be fixed (missing prototypes?)
  783.  Warning : function has no prototype
  784.  PNGRTRAN.C line 454   {
  785.  PNGRTRAN.C line 1121   {
  786.  PNGRTRAN.C line 1165   {
  787.  
  788. 3.0.beta.1d       09/19/95 by Chris Young
  789. Added pov_memcpy which needs to be tested by those without memcpy.
  790. MSDOS & WINDOWS: Changes to config.h in RENAME_FILE
  791. **BEWARE** the duplicate PNG.H PNGCONF.H ZLIB.H & ZCONF.H have
  792.  been removed from SOURCE and exist only in SOURCE/ZLIB & SOURCE/LIBPNG.
  793.  Also the COPYTO.BAT & COPYFROM.BAT files have not been updated to
  794.  copy these files.  You must hand copy them.  Later COPYTO/COPYFROM
  795.  will be obsolete so I didn't bother updating them.
  796.  
  797. 3.0.beta.1c       09/18/95 by Tim Wegner
  798. Cleaned up fractal code, removed julia_parameter keyword, and added a whole 
  799. lot more functions. Syntax is now:
  800.  
  801.  julia_fractal {
  802.          VECTOR4D
  803.          [quaternion | hypercomplex]
  804.          [sqr | cube | exp | reciprocal | sin | asin | sinh | asinh |
  805.           cos | acos | cosh | acosh | tan | atan | tanh | atanh | log |
  806.           pwr(FLOAT,FLOAT)]
  807.          max_iteration INT
  808.          precision FLOAT
  809.          slice VECTOR4D
  810.  }
  811.  
  812. The one function that needs explanation is pwr(FLOAT,FLOAT). This is the
  813. function (in C terminology) that raises the complex number z to the complex
  814. power (FLOAT,FLOAT). For example, the case pwr(2,0) gives the same image as 
  815. sqr (though it renders much more slowly.)
  816.  
  817. Most of these functions work only with algebra type hypercomplex. The only
  818. ones that work with quaternion are sqr and cube. I added a trap for this
  819. error.
  820.  
  821. Note that if any of these keywords which are not already supported by the
  822. expression parser become supported in the future, then the 
  823. Parse_Julia_Object() routine would need to be changed to reflect this (an
  824. easy change).
  825.  
  826. 3.0.beta.1b       09/16/95 by Tim Wegner and Andreas Dilger
  827. PMG support now resumes and works for height fields, and should work for
  828. image maps and bump maps. Added Alpha support for PNG output, and made Targa
  829. and PNG handling of Alpha consistent. Added NO_MEMMOVE define to unixconf.h
  830. which uses memcpy instead on systems without memmove, and protects against
  831. copying overlapping memory areas. I've included Andreas's changes to the
  832. UNIX make file for Chris Cason's information (not intended to pre-empt any
  833. decisions about where Libpng, Zlib directories should go.) The source has 
  834. been compiled with unixconf.h on AIX with the IBM xlc compiler, and it
  835. works fine so we don't need a separate rs6conf.h.
  836.  
  837. 3.0.beta.1a       09/10/95 by Eduard Schwan
  838. Fixed incorrect parm passed to png_write_finish_row in PNG_POV.C.
  839. The "#define W 3" conflicted with variables in POLYGON.C if precompiled headers
  840.   were used, so I changed the "W" variable names there, and moved the define
  841.   from FRACTAL.H to FRAME.H, to join its buddies X,Y,Z.
  842. Removed incorrect trailing comma from ini_op enums in OPTIN.C.
  843. Added a couple more cooperates in the bounding/light buffer code, since we
  844. can be looping in there for awhile without letting the GUI breathe.
  845.  
  846. 3.0.beta.0d       09/07/95 by Chris Cason
  847. Returned COOPERATE calls to a few places (probably different from original).
  848. Changed COOPERATE to COOPERATE_0 and COOPERATE_1 in source code and modified
  849.   frame.h such that this would not break code depending on the use of COOPERATE.
  850.   COOPERATE_0 is a high level one that is less likely to be ignored than
  851.   COOPERATE_1, if the GUI's niceness setting is in mean mode. COOPERATE_0 is
  852.   intended to be called less frequently by the renderer.
  853. Added POV_PRE_PIXEL and POV_POST_PIXEL which always get called even if display
  854.   mode is turned off. Both macros take x, y and colour.
  855.  
  856. 3.0.beta.00c      09/05/95 by Tim Wegner
  857. You should delete the files gfract.* (obsolete) and julia.* (renamed). 
  858. The patch file will create two new files quatern.c and quatern.h which
  859. were formerly the julia.* files.
  860.  
  861. Completely reorganized the fractal format. The new syntax for the fractal 
  862. object is as follows, with all parameters optional, and in any order:
  863.  
  864.  julia_fractal {
  865.          julia_parameter VECTOR4D
  866.          quaternion | hypercomplex
  867.          sqr | cube | exp | reciprocal
  868.          max_iteration INT
  869.          precision FLOAT
  870.          slice VECTOR4D
  871.  }
  872.  
  873. sqr was z2 and cube was z3. The old "fractal" is obsolete. The old "julia"
  874. object is what you get with the quaternion keyword present. The slice 
  875. keyword is new. It allows the 4D fractal object to be sliced by a 3D "plane" 
  876. at any angle.
  877.  
  878. There's a new routine called parse_Vector4D() in case anyone needs it for
  879. other purposes.
  880.  
  881. 3.0.beta.00b      09/03/95 by Dieter Bayer
  882. Added PNG support by Tim Wegner and Andreas Dilger
  883. Added Bits_Per_Color/Bits_Per_Colour INI file keyword (used by PNG)
  884. Added Andreas Dilger to the contributing authors list
  885. Added redirection options to the render option output
  886. Added matrix transform to all places where transformations are allowed
  887. Moved hollow keyword into finish statement. NOTE that in order to see
  888.   any halos inside an object you have to make sure that the finish
  889.   is set to hollow
  890. Changed "r" file options to READ_FILE_STRING (that's "rb")
  891. Renamed PNC.C to PNC_POV.C and added PNG_POV.H to avoid conflicts with
  892.   PNG.C and PNG.H that come with the PNG library
  893. Renamed project_* functions in VBUFFER.C in order to avoid problems
  894.   with the Watcom linker
  895. Fixed bug that occured in MSDOSVID.C when the console output of the render
  896.   stream was turned off (a segmentation violation occured due to a NULL
  897.   pointer access in Viewit)
  898. Fixed bug in halo default color map assignment
  899. Fixed some memory bugs in PNG_POV.C
  900. Fixed bug in multi-textured blobs
  901. Updated MSDOS DJGPP make & link files and Unix makefiles
  902.  
  903. 3.0.beta.00a      08/29/95 by Dieter Bayer
  904. Added Zsolt Szalavari to the contributing authors list
  905. Replaced strupr() and strlwr() in express.c by own functions to make it work
  906.   with Unix and other systems that don't have those functions
  907. Removed unused distance parameter from halo
  908. Fixed help screen problems
  909. Updated Unix make files
  910.  
  911. 3.0.beta.0        08/29/95 by Chris Young
  912. Added #ifdef (IDENTIFIER) language directive. See VECT2.POV
  913. Added %w and %h (width, height) substitution for shell strings
  914. Added black_hole warps by Chris Cason
  915. Dropped dump and raw format.  Remove DUMP.C DUMP.H RAW.C RAW.H
  916. Added re-directable macros for new "sys" file type for system specific
  917.  format such as Mac Pict or Windows BMP.  Macros in FRAME.H.
  918.  Support added via "sys" keyword such as "image_map{sys "file.ext"..."
  919.  and via +FS switch.
  920. Added string functions "strupr(STRING)" and "strlwr(STRING)" same as C
  921. Added built-in UV_VECT constants "u" value <1,0> and "v" value <0,1>
  922. Added . period operator for VECT.x VECT.y VECT.z UV_VECT.u UV_VECT.v
  923.   COLOR.red COLOR.green COLOR.blue COLOR.filter COLOR.transmit
  924. Added built-in float constant "platform".  Defined in CONFIG.H 
  925. Added boolean function "file_exists(STRING)" searches current dir and +L
  926. Added integer function "strcmp(STRING1,STRING2)" same as in C strcmp
  927. Changed string function "num_to_string(F,W,P)" to "str(F,W,P)"
  928. Changed float function "atof(STRING)" to "val(STRING)"
  929. Changed variables "Point" to "IPoint" in HCMPLX.C
  930. Fixed spelling on "eccentricity"
  931. Fixed bugs in #if #else
  932. Minor change in default file processing
  933. Misc Error and Warning message changes by Dieter
  934. Updated make files for removal of dump and raw.
  935.  
  936. 3.alpha.0.19      08/27/95 by Dieter Bayer
  937. Added halo stuff by Zsolt Szalavari (did some changes and improvements).
  938.   The syntax is (docs will follow later, sigh):
  939.     texture {
  940.       halo {
  941.         attenuating | emitting | glowing | dust
  942.         constant | linear | cubic | poly
  943.         planar_mapping | spherical_mapping | cylindrical_mapping | box_mapping
  944.         fog_type FLOAT
  945.         max_value FLOAT
  946.         exponent FLOAT
  947.         samples FLOAT
  948.         aa_level FLOAT
  949.         aa_threshold FLOAT
  950.         turbulence VECTOR
  951.         octaves FLOAT
  952.         omega FLOAT
  953.         lambda FLOAT
  954.         colour_map COLOUR_MAP
  955.         frequency FLOAT
  956.         phase FLOAT
  957.         scale VECTOR
  958.         rotate VECTOR
  959.         translate VECTOR
  960.       }
  961.     }
  962. Added matrix transform by Steve Demlow (see sample scenes matrix.pov,
  963.   shear1.pov and shear2.pov)
  964. Added distance based light attenuation for translucent objects. Syntax:
  965.   finish {
  966.     ...
  967.     fade_distance FLOAT
  968.     fade_power FLOAT
  969.     ...
  970.   }
  971.   The light is attenuated in a linear, quadratic, cubic, etc. fashion
  972.   (according to the fade_power value). At distance fade_distance
  973.   the attenuation is 50% (see sample scene atten1.pov).
  974. Added new atmospheric scattering type 5 (Heyney-Greenstein function
  975.   with paramter given by "excentricity" keyword)
  976. Added attenuation of light coming from light sources due to fog and/or
  977.   atmosphere (by default this is not used, i.e. the light is not
  978.   attenuated; the keyword "atmospheric_attenuation" is used with 
  979.   light sources to switch the attenuation on/off) (see sample scene fog2.pov)
  980. Added attenuation due to fog and/or atmosphere inside an object (by default
  981.   this is off, i.e. there's no fog/atmosphere inside any object; this
  982.   can be changed by using the keyword hollow, i.e. hollow FLAG)
  983.   (see sample scene fog2.pov)
  984. Modified and simplified atmosphere supersampling
  985. Removed unnecessary support for bounded fog
  986. Fixed bug in Test_Shadow() (LIGHTING.C)
  987. Fixed bug in trace_pixel() (RENDER.C): uninitialized variables
  988. Fixed bug in Global_Setting_Warn(), PARSE.C
  989. Fixed bug in Post_Tnormal(), NORMAL.C (slopemap.pov)
  990. Fixed memory problem detected by Purify in Destroy_Blob(), BLOB.C
  991. Fixed memory problem detected by Purify in Create_BMap_Entries(), COLOUR.C
  992. Fixed memory problem detected by Purify in Create_Fractal(), FRACTAL.C
  993. Fixed memory problem detected by Purify in Read_Gif_Image(), GIF.C
  994. Fixed memory problem detected by Purify in Get_Dump_File_Handle(), DUMP.C
  995. Fixed memory problem detected by Purify in Get_PPM_File_Handle(), PPM.C
  996. Fixed memory problem detected by Purify in Get_Raw_File_Handle(), RAW.C
  997. Fixed memory problem detected by Purify in Get_Targa_File_Handle(), TARGA.C
  998. Fixed memory problem detected by Purify in Tokenize_Renderer(), RENDER.C
  999. Lots of cosmetic changes (new header layout, added headers)
  1000. Updated MS-DOS make & link files
  1001. Updated Unix make & link files
  1002. Updated Unix xwindows.c file (new file supports true color displays)
  1003.  
  1004. 3.alpha.0.18t     08/15/95 by Chris Young
  1005. Added "brick_size <VECTOR>" and "mortar FLOAT"
  1006. Other brick changes.
  1007. Added shellout return code processing.
  1008. MSDOS:Changes to implement return codes.
  1009.  
  1010. 3.alpha.0.18s     08/08/95 by Dieter Bayer
  1011. Added Pascal Massimino and Timothy Wegner to the credit screen
  1012. Split credit screen into primary developer and major contributor part
  1013. Removed useless VSqr() macro
  1014. Fixed some field rendering problems
  1015. Fixed unwanted jittering of inital rays in antialiased images
  1016. Fixed unwanted jittering with non-antialiased images
  1017. Fixed bounding bug in BLOB.C
  1018.  
  1019. 3.alpha.0.18r     08/07/95 by Chris Young
  1020. Fixed problems with \ in file names.
  1021. Moved caustics code to fix texture_map bugs.
  1022. Removed Max_Symbols, +QH and radiosity from INI & switches.
  1023. Added global_setting {
  1024.        irid_wavelength COLOR
  1025.        max_trace_level FLOAT    // int internally
  1026.        adc_bailout FLOAT
  1027.        number_of_waves FLOAT    // int internally
  1028.        max_intersections FLOAT  // int internally
  1029.        radiosity {
  1030.          brightness FLOAT
  1031.          count FLOAT            // int internally
  1032.          distance_maximum FLOAT
  1033.          error_bound FLOAT
  1034.          gray_threshold FLOAT
  1035.          low_error_factor FLOAT
  1036.          minimum_reuse FLOAT
  1037.          nearest_count FLOAT    // int internally
  1038.          recursion_limit FLOAT  // int internally
  1039.        }
  1040.        hf_gray_16 [FLOAT]   // optional boolean
  1041.       }
  1042. Fixed #while(COND) bug
  1043. Some truetype updates from Xander.
  1044. MSDOS:Updated make files.
  1045.  
  1046. 3.alpha.0.18q     08/06/95 by Dieter Bayer
  1047. Added field rendering command line switches (+UF +UO)
  1048. Added anti-aliased focal blur (Standard aa is switched off when focal blur
  1049.   is used. The user is warned about this.)
  1050. Added early exit test for focal blur based on confidence test
  1051.   New camera keywords: 
  1052.     confidence - Determines how sure the confidence test is, i.e. how
  1053.                  likely the pixel color is "close" to the real value.
  1054.                  The default value is 0.9.
  1055.     variance   - Maximum allowed variance. If the variance of the samples
  1056.                  in a pixel is greater than this value the maximum number
  1057.                  of samples will be used (i.e. the blur_samples value).
  1058.                  This parameter should be of the same magnitude as the
  1059.                  color resolution (on an 8bit per color display the 
  1060.                  color resolution is 1/2^8). The default value is 1/128.
  1061. Added adaptive supersampling method (ini file: Sampling_Method):
  1062.   +AM1 : non-adaptive supersampling
  1063.   +AM2 : adaptive supersampling
  1064. Fixed some bugs I introduced in 18p due to patch problems
  1065. Fixed some field rendering bugs:
  1066.   odd/even line tracing switches from frame to frame now
  1067.   unnecessary supersampling of pixels above the current line is avoided
  1068.  
  1069. 3.alpha.0.18p     08/03/95 by Dieter Bayer
  1070. Fixed focal blur bug I introduced with patch 18l
  1071. Fixed resampling bug of center sub-pixel during supersampling
  1072. Fixed bugs in matches() (OPTIN.C)
  1073. Changed some calls and other (unnecessary) stuff in RENDER.C
  1074.  
  1075. 3.alpha.0.18o     08/03/95 by Jeff Bowermaster
  1076. Implemented Field Rendering for NTSC/PAL Animation 
  1077. Keywords "Field_Render=bool" and "Odd_Field" substituted for Interlace..
  1078.  
  1079. 3.alpha.0.18n     07/31/95 by Chris Young
  1080. Fixed big problem with Keyword=bool
  1081. Other minor changes
  1082.  
  1083. 3.alpha.0.18m     07/28/95 by Chris Young
  1084. New string manipulation functions...
  1085.   num_to_string(VALUE,LENGTH,PRECISION) creates string from float value
  1086.   chr(VALUE) creates 1 character string, e.g. chr(169) makes a copyright
  1087.   concat(STRING,STRING) concats two strings
  1088.   substr(STRING,START,LENGTH) e.g. substr("ABCDE",2,3) returns "BCD"
  1089. New float valued functions...
  1090.   atof(STRING) returns float value represented by string atof("1.2")=1.2
  1091.   asc(STRING) returns ASCII value of first char of string, asc("A") is 65.0
  1092.   strlen(STRING) length (in chars) of string (see STRINGS.POV)
  1093. New language directives print messages (see MESSAGE.POV)
  1094.   #warning STRING  #debug STRING  #error STRING  #render STRING
  1095.   #status STRING  #statistics STRING
  1096.    During parsing, sends string to corresponding text stream 
  1097.   String expressions above work for ttf, #include and image_map, bump_map,
  1098.    material_map names.  Basically all strings.
  1099. Can declare string identifiers.
  1100. Partial support for \n \r \t etc.  Only works in messages, not in ttf.
  1101. Changed Bits_Per_Pixel to Output_Alpha=bool and +UA -UA
  1102. Implemented #while (COND)... #end loop (see WHILE1.POV)
  1103. MSDOS: Remove ICB compiler support, removed TARGA+ board support
  1104. IBM: Dropped whole MACHINE\IBMPC directory.
  1105.  
  1106. 3.alpha.0.18l     07/26/95 by Dieter Bayer
  1107. Changed a lot of memory allocations in BBOX.C, LBUFFER.C, LIGHTNING.C,
  1108.   MESH.C, VBUFFER.C and VLBUFFER.C in order to avoid unnecessary mallocs/
  1109.   frees during the main tracing loop 
  1110. Changed DEPTH_TOLERANCE in planes.c due to infinite loop with SKYVASE.POV
  1111. Changed calls to free() and malloc() into calls to POV_FREE() and
  1112.   POV_MALLOC() in OCTREE.C, PPM.C and RADIOSIT.C (the memory allocated
  1113.   during radiosity isn't freed yet!)
  1114. Fixed bug in rainbow arcs when a filter value is used (the rainbow didn't
  1115.   fade away anymore)
  1116. Fixed "Refrated" typo in OPTOUT.C
  1117. Fixed focal blur bug (the focal plane is in the right place now)
  1118.  
  1119. 3.alpha.0.18k     07/25/95 by Eduard Schwan
  1120. Changed r,g,b,a parms in POV_Std_Display_Plot & Rect in USERIO.C/H from
  1121.  unsigned char to unsigned int to resolve a Mac (Metrowerks) compiler bug
  1122.  (MW got confused on the mixed K&R and ANSI styles for these.)
  1123. Fixed inconsistencies & Mac problems in JULIA.C/H.  Some prototypes left
  1124.  out the parameter name, some function decl.s were ANSI, and the Macintosh
  1125.  has a type defined as "Point", so I renamed all "Point" parameters to
  1126.  "point".
  1127. Added a COOPERATE call in BBOX.C during sort_and_split, so Macs don't
  1128.  hang during the building of big bounding box trees.
  1129. Fixed Truman's "disappearing cylinder" bug in MATRICES.C, changed the
  1130.  ever-questionable "if (fp==1.0)" to the more robust "if (fabs(fp-1.0)<Eps)"
  1131.  
  1132. 3.alpha.0.18j     07/23/95 by Chris Young
  1133. Made -B switch turn buffer off, added Buffer_Output=bool
  1134. Rewrote some of text redirection, fixed bugs, made =bool work for any bool
  1135. Fixed Create_Ini=bool
  1136. Deleted Banner_File and Banner_Console redirection
  1137. Deleted +@ -@ stuff, replaced with warning message.
  1138. Deleted +Z -Z Debug= stuff
  1139. Moved mosaic preview error checking and relaxed it.
  1140. Other mosaic preview and radiosity preview fixes.
  1141. Turned Gamma_Correct into optional macro.
  1142. MSDOS:Turned dither off in draw box and Plot_Rect.
  1143. MSDOS:More make file changes/fixes
  1144.  
  1145. 3.alpha.0.18i     07/20/95 by Chris Young
  1146. Added Interlace= and Interlace_Odd= INI settings but did not implement
  1147.  actual odd/even interlace.
  1148. Added +Q10 to turn radiosity on but did not yet make other radiosity
  1149.  changes nor did not yet do radiosity{...} statement.
  1150. Added User_Abort_Command=sss and Fatal_Error_Command=sss shell outs.
  1151. Removed +MS -MS and replaced it with Warning
  1152. Removed +NFI +NFF +Unnn switches
  1153. Removed VerboseFormat
  1154. Fixed bug that light buffer INI set vista buffer by mistake
  1155. Fixed #ifdef PRECISION_TIMER_AVAILABLE that should have been just #if
  1156. Updated various MS-Dos make files for fractal stuff
  1157. Fixed bug in MSDOS\COPYFROM.BAT that copied MSDOS\*.* files into
  1158.  compiler-specific directories by mistake.  If you have a file in a
  1159.  compiler-specific directory that is also in MACHINE\MSDOS then delete it 
  1160.  from the compiler-specific directory and only keep it in MACHINE\MSDOS.
  1161.  
  1162. 3.alpha.0.18h     07/16/95 by Dieter Bayer
  1163. Added extra stats to the stats screen
  1164. Added code to LIGHTING.C, RENDER.C and VBUFFER.C to use the transmittance
  1165.  value of a pixel for the alpha channel
  1166. Added Pascal Massimino's fractal stuff (adopted by Tim Wegner)
  1167. Changed parameters to Intersect_Sphere() function
  1168. Changed fractal bounding sphere tests to call Intersect_Sphere()
  1169. Fixed bug with pigment colors of the type rgbt<0, 0, 0, t> with t > 0
  1170.  
  1171. 3.alpha.0.18g     07/12/95 by Dan Farmer
  1172. Reversal of patch 3.alpha.0.18c (Garnder clouds removed).
  1173.  
  1174. 3.alpha.0.18f     07/12/95 by Chris Young
  1175. Moved the Pre-Frame and Post-Frame commands to different location.
  1176. Added screen save/restore in MSDOS version before/after all 4 shellouts.
  1177. Fixed 0.0 to 1.0 range on wrinkle and waves pigment.
  1178. Added Histogram_Type=N for no histograms.
  1179. Fixed various Create_INI=rerun.ini problems.
  1180. Fixed bug with continued animations.
  1181. Added substitution options to the shellout commands.  New options
  1182.  are %s for scene name, %f for frame number and %k for clock value.
  1183.  
  1184. 3.alpha.0.18e     07/07/95 by Dieter Bayer
  1185. Added check for zero memory allocation to mem.c (only if MEM_HEADER is defined)
  1186. Added caustics keyword to finish structure (caustics FLOAT). Default is
  1187.   0, i. e. no caustics are simulated. A good value for caustics is 1.0
  1188. Changed mesh counters from int to long
  1189. Removed obsolete caustics_power ini keyword
  1190. Fixed zero allocation list of temporary light list in lighting.c
  1191. Fixed extra data bug in GIF.C as suggested by Chris Cason
  1192.  
  1193. 3.alpha.0.18d     07/05/95 by Chris Young
  1194. Added default extensions for all input files (.pov, .inc, .tga, .gif etc)
  1195. Added default output file name based on input file name.
  1196. Fixed bugs in .INI parsing which cause some options to be wiped out.
  1197. Fixed bug which caused superelipsoids not to work in csg.
  1198. Added text buffers with scroll-back to MSDOS version.
  1199. Misc cleanup of MSDOSTXT.C, MSDOSVID.C and IBM.C and make files.
  1200.  
  1201. 3.alpha.0.18c     06/22/95 by Dan Farmer
  1202. Added Gardner-style cloudplane pigment.
  1203.  
  1204. 3.alpha.0.18b     06/22/95 by Chris Young
  1205. Changed "display_..." functions to "POV_DISPLAY_..." macros.
  1206. Added alpha output to POV_DISPLAY_... so Mac version can save alpha
  1207. Began major restructuring of MACHINE\IBM into MACHINE\MSDOS.
  1208. Added Kendall's console handling stuff to MSDOS vers.
  1209.  
  1210. 3.alpha.0.18a     06/17/95 by Eduard Schwan
  1211. Removed unnecessary COOPERATE calls bogging down Mac version.
  1212. Fixed check_stats to display mosaic information and initial clock info.
  1213. Moved a too-tightly-nested CR output in verbose mosaic mode.
  1214.  
  1215. 3.alpha.0.18      06/09/95 by Chris Young
  1216. Major clean-up of last several patches.
  1217. Fixed Library_Path= bug.
  1218. TTF file open now searches +L paths.
  1219. Major memory leaks fixed in tiles, texture_map and ttf.
  1220.  
  1221. 3.alpha.0.17m     06/09/95 by Dieter Bayer
  1222. Added alpha channel support for Targa files (+f32 command line option and
  1223.  Bits_Per_Pixel ini file option to save 32bit Targas; they are automatically
  1224.  detected during reading and the alpha channel is used as transmittance. 
  1225.  The alpha channel is non-premultiplied and uses a value of 0 for 100% 
  1226.  transparency and a value of 255 for 0% transparency)
  1227. Fixed missing output filename bug when no filename was given
  1228. Fixed bug in Compute_CSG_BBox (wrong size to POV_REALLOC())
  1229.  
  1230. 3.alpha.0.17l     06/07/95 by Chris Dailey
  1231. Moved options into a single structure in povray.h
  1232. Moved statistics into an array, indices denoted by an enum
  1233. Created total statistics array
  1234. Move Post_Frame_Cmd_String to after closing of output file to avoid contention
  1235.  with shelled out program
  1236. Made +SF, +EF handle more like +SR/+ER and +SC/+EC in optin.c
  1237. Changed FrameData to FrameSeq
  1238. Updated machine-specific os2conf.h and bcos2.mak
  1239.  
  1240. 3.alpha.0.17k     06/04/95 by Chris Young
  1241. INI-style values may now contain blanks. No longer need %b in shell commands.
  1242. Implemented bracked sections of INI file.  Put "MYFILE.INI[MYSECTION]" on
  1243.  command line.  Only the section [MYSECTION] of file MYFILE.INI is read.
  1244.  If no section specified, only unlabled part of INI read.
  1245. Fixed latest #switch #range bug reported by DMF.
  1246.  
  1247. 3.alpha.0.17j     05/31/95 by Chris Young
  1248. Yet another bug fixed with #if #else and #declare
  1249. Reversed 17h some changes to restore +KF and +KFF
  1250.  
  1251. 3.alpha.0.17i     05/30/95 by Dieter Bayer
  1252. Added GET_KEY(x) macro to machine config files (ibmpc, os/2)
  1253. Fixed bug in mesh normal calculation (missing test for null pointer)
  1254. Fixed bug in continued animations (only parts of frames where traced 
  1255.  after one image was aborted)
  1256.  
  1257. 3.alpha.0.17h     05/27/95 by Chris Dailey
  1258. Removed Subset_Start_Pct and Subset_End_Pct, moved their functionality to
  1259.  Subset_Start_Frame and Subset_End_Frame
  1260. Allow +SF1.0 and +EF1.0 as special case for last frame
  1261. Almost changed flags +KFL and +KL to +KFF and +KF for Initial/Final terminology
  1262.  consistency, but +KFF & +KF are tricky.  Instead used +KI and +KF for clock
  1263.  Initial/Final, +NFI and +NFF for number frame Initial/Final
  1264. Fix help output for above option changes
  1265. More changes to option screen for animation
  1266. Added POV_SHELLOUT, POV_SYSTEM, and POV_MAX_CMD_LENGTH macros to frame.h,
  1267.  (overridable in config.h)
  1268. Added Pre_Render_Command, Pre_Frame_Command, Post_Frame_Command, and
  1269.  Post_Render_Command .ini file keywords; %b is for a blank, for _Frame_ %o
  1270.  is output file name
  1271.  
  1272. 3.alpha.0.17g     05/23/95 by Chris Young
  1273. Fixed a bug with #if #else and #declare
  1274.  
  1275. 3.alpha.0.17f     05/23/95 by Dieter Bayer
  1276. Added code for cyclic animation support (+KC switch, Cyclic_Animation keyword)
  1277. Added help screen menue support (define GET_KEY(x) in config.h to get menue
  1278.  to work! For MS-DOS that's #define GET_KEY(x) {(x) = getch();} )
  1279. Added animation options to option screen
  1280. Changed option screen layout (slightly!)
  1281.  
  1282. 3.alpha.0.17e     05/17/95 by Dieter Bayer
  1283. Added code for faked caustics
  1284.  
  1285. 3.alpha.0.17d     05/16/95 by Dieter Bayer
  1286. Modified mesh triangle calculation
  1287. Fixed "atmopshere in objects"-bug (atmospheric effects are not calculated
  1288.   when inside a transparent object)
  1289. Fixed bug in smooth triangle normal calculation in MESH.C
  1290.  
  1291. 3.alpha.0.17c     05/14/95 by Chris Dailey
  1292. Corrected default clock value bug introduced in 16L
  1293. Added animation status lines, made slight newline mods to others
  1294. Separated out initialization of statistics, print statistics for each frame
  1295.  instead of whole animation
  1296. Don't use tparse as a temporary variable in optout.c, its value needs to
  1297.  stay unchanged between frames to avoid exponential growth
  1298. Changed animation defaults as discussed in forum
  1299. Changed animation parameter .ini file names (removed Clock_ prefix)
  1300. Changed to "Initial"/"Final" terminology for whole animation definition,
  1301.  "Start"/"End" terminology for animation subset definition.  This includes
  1302.  variable names and .ini file names
  1303. Changed filename generation scheme to figure out how many chars the frame
  1304.  number takes up in the output filename
  1305. Split setup_output_file() to setup_output_file_name() and open_output_file()
  1306.  to aid in future "shell out" feature after filename determination and before
  1307.  opening
  1308. Added POV_NAME_MAX definition to frame.h, overridable in config.h
  1309.  
  1310. 3.alpha.0.17b     05/11/95 by Dieter Bayer
  1311. Added filtering fog (color ... filter) and transmittance threshold (transmit x)
  1312. Added missing keywords to the ini-file parser (Vista_Buffer, Light_Buffer,
  1313.   Draw_Vistas, Split_Unions, Remove_Bounds)
  1314. Changed triangle mesh syntax (mesh{} instead of triangle_mesh{})
  1315. Changed atmosphere syntax (scattering instead of reflectivity)
  1316. Changed rainbow syntax
  1317. Changed radiosity options help screen to fit on a 80x25 screen
  1318. Changed "Copyright 199x" into "Copyright 1995"
  1319. Changed structs in OCTREE and RADIOSIT into typedefs
  1320. Fixed bug in triangle mesh to make the hierarchy flag work correctly
  1321. Fixed bug in triangle mesh intersection point test ("missing shadow bug")
  1322. Fixed animation loop bug in POVRAY.C as mentioned by Chris Dailey
  1323. Removed vista/light buffer tree traversal methods (+up option)
  1324. Removed '#include <stdlib.h>' from RENDER.C
  1325.  
  1326. 3.alpha.0.17a     05/02/95 by Chris Cason
  1327. Added histogram code.
  1328. Misc spelling fixes, particularly variable Help_Available (:-).
  1329.  
  1330. 3.alpha.0.17      05/02/95 by Chris Young
  1331. Now possible to do #declare everywhere, even within objects (I think?)
  1332. Fixed destroy slope_map bug.
  1333. Misc bug fixes from recent patches.
  1334.  
  1335. 3.alpha.0.16l     04/28/95 by Chris Dailey
  1336. ANIMATION CHANGES:
  1337. parse.c Make pointer NULL after Destroy()ing its contents for Camera,
  1338.  do so for Texture while at it
  1339. povray.c Moved Initialize_noise() out of FrameRender() loop
  1340. povray.c Added Frame Number as @-escape to Output_File_Name: @[0]n, where
  1341.  n=max digits.  eg, file@3.tga would give file34.tga, file@03.tga would give
  1342.  file034.tga.  I know, @3 is no different than @7, we'll have to come up
  1343.  with a more logical scheme.
  1344. povray.c Added animation loop
  1345. povray.c renamed setup_renderer() to setup_output_file()
  1346. povray.c Moved Initialize_Renderer() call into FrameRender()
  1347. povray.c Move set_output_file_handle() call into setup_renderer()
  1348. povray.c Move a large chunk of main() into new FrameRender() function
  1349. express.c Yet slightly different behavior for Clock used without being set -
  1350.  inform user about default value, show warning only once
  1351. NON-ANIMATION CHANGES:
  1352. moved streams_init() call from mem.c to povray.c
  1353. cones.c:'Cone_Methods'/discs.c:'Disc_Methods'/bezier.c:'Bicubic_Patch_Methods'/
  1354.  julia.c:'Julia_Methods' is declared as both external and static fixed by
  1355.  removing its extern declaration in cones.h/discs.h/bezier.h/julia.h
  1356. lighting.c moved a brace as requested by Dan Farmer in message #110124,
  1357.  which makes calling of do_irid() independent of light source type
  1358. converted mem.c function headers from true ANSI to middle ANSI-K&R (*sigh*)
  1359. modified other files to user userio.h, mem.h
  1360. split memio.c/h to create mem.c/h and userio.c/h
  1361. radiosit.c changed ra_average_near() to be usable as parameter to
  1362.   ot_dist_traverse(), prototype in radiosit.h.  Note - someone should
  1363.   probably REALLY change ot_dist_traverse so that handle,handle1 are
  1364.   struct wt_avg *, but I don't feel confident enough to do this
  1365. memio.c changed false->FALSE, true->TRUE to fix undefined symbol
  1366.  
  1367. 3.alpha.0.16k     04/18/95 by Steve Demlow
  1368. Fixed stream redirection for non-standard I/O functions
  1369. Included octree.h in various places to define a type for radiosit.h
  1370. Fixed memory leak in Allocate_Text_Streams in optin.c
  1371.  
  1372. 3.alpha.0.16j      Apr 16/95 by Jim McElhiney
  1373. Added first version of all radiosity code
  1374.    -radiosity source files (radiosit.c, radiosit.h, octree.c, octree.h)
  1375.    -new flags
  1376.    -new progress messages
  1377.    -new mosaic preview function...could be integrated in future
  1378.    -trace() returns distance to object hit
  1379. Gamma correction function installed in code, but no option sets it
  1380.    -if you want to try this, set values in source in Gamma_Correct()
  1381. Smooth_Preview capability in the mosaic preview.
  1382.    -Like Gamma correction, there is no switch for this.  Change the
  1383.     variable Smooth_Preview to try it...it is used only when radiosity
  1384.     is on.
  1385. Small change to crackle to avoid value wraparound bugs
  1386.    -note values returned are about 10% smaller...may need colour map change
  1387. Fixed some small compiler issues
  1388.    -unused locals in targa.c and truetype.c
  1389.    -memory addressing error in parse.c
  1390.    -signed/unsigned mismatch warnings in 7 files
  1391.    -floating point errors in boxes.c and julia.c
  1392.    Note:  error in julia.c is flagged, but NOT FIXED...for Dieter to check?
  1393. One user interface change:
  1394.    -when using mosaic preview, when it completes, it now falls through to
  1395.     do the regular detailed trace.  Radiosity requires this behaviour,
  1396.     and I changed it for the regular mosaic preview to match.
  1397.  
  1398.  
  1399. 3.alpha.0.16i     04/09/95 by Dieter Bayer
  1400. Added arc to the rainbow (syntax: 
  1401.   rainbow { 
  1402.     up <VECTOR>          - rainbow's "up" vector, i.e. angle = 0
  1403.     falloff_angle1 FLOAT - angle of solid rainbow part
  1404.     falloff_angle2 FLOAT - angle of total rainbow
  1405.   }
  1406.   The rainbow arc goes from -falloff_angle2 to +falloff_angle2
  1407.   and is blended into the background from -falloff_angle2 to
  1408.   -falloff_angle1 and from falloff_angle1 to falloff_angle2,
  1409.   i.e. the "solid" (i.e. unblended) part of the rainbow
  1410.   goes from -falloff_angle1 to +falloff_angle2. If falloff_angle1
  1411.   is omitted no blending takes places. If falloff_angle2 is
  1412.   omitted the arc covers 360 degrees.
  1413. Added seconds time stats.
  1414. Changed help screen layout
  1415. Moved ini-file and command line parser into OPTIN.C/OPTIN.H
  1416. Moved code from main() into new functions
  1417. Fixed memory leakage in Copy_Rainbow() in ATMOSPHERE.C
  1418. Fixed memory leakages that occured if redirection was used (using POV_REALLOC()
  1419.   instead of POV_MALLOC() in process_variable() in OPTIN.C)
  1420. Fixed prototypes in POVRAY.C
  1421. Fixed divide by zero bug in Print_Stats() in POVOUT.C
  1422. Renamed OPTIONS.C/H to OPTOUT.C/H
  1423.  
  1424. 3.alpha.0.16h     04/07/95 by Chris Young
  1425. Fixed expression parse bug when parens used around vector.
  1426. Fixed problems in counter_to_string where \0 was written beyond
  1427.  end of string and leading spaces were too long.
  1428. Fixed memory leaks when previous blend map is overwritten.
  1429.  
  1430. 3.alpha.0.16g     04/05/95 by Dieter Bayer
  1431. Added syntax of animation options to help screen
  1432. Added FRAND() macro to TEXTURE.H to generate random number x (0 <= x <= 1)
  1433. Changed POV_Std_rand() to use faster shift instead of divide
  1434. Changed calls to POV_RAND() into calls to FRAND() were applicable
  1435. Fixed memory leakage in stream allocation
  1436.  
  1437. 3.alpha.0.16f     04/04/95 by Steve Demlow
  1438. Added options, for each output text stream, to turn off console output
  1439.  and/or to write to a default or specified file.
  1440. Added option to write all .INI settings to a file.
  1441. Added stdin support for script files and stdout support for output image
  1442.  files.
  1443. Turned off "Press any key" message if no WAIT_FOR_KEYPRESS is defined.
  1444.  
  1445. 3.alpha.0.16e     04/4/95 by Eduard Schwan
  1446. Added missing prototype for alt_main in POVRAY.H
  1447. Added MAIN_RETURN_STATEMENT at end of main() in POVRAY.C
  1448. Optimized the way Authors strings were allocated and displayed in OPTIONS.C
  1449. Moved the COOPERATE calls around a little to gain some Mac speed
  1450.  
  1451. 3.alpha.0.16d     03/29/95 by Chris Young
  1452. Added #switch, #case, and #range directives.
  1453. Fixed #if #else bugs.
  1454. Reversed a 16b patch that causes fatal errors when clock used without
  1455.  being set.  Changed to warning.  Uses default clock=0.0.
  1456. Fixed +Knnn.n switch bug.
  1457. Tiny change in options.c for extra precision counters.
  1458. New scene files.  Delete CASE1.POV & CASE2.POV.  No longer valid.
  1459.  
  1460. 3.alpha.0.16c     03/28/95 by Dieter Bayer
  1461. Updated credit screen
  1462. Fixed bug in triangle scaling
  1463. Fixed bug in triangle mesh bounding box calculation
  1464.  
  1465. 3.alpha.0.16b     03/26/95 by Chris Dailey
  1466. Added preliminary animation support, including command line args, ini file
  1467.  support, variable storage, and a little consistency checking.
  1468. Fixed a small bug with LAST_OPTION
  1469. Some OS2 files updated for 3.0
  1470.  
  1471. 3.alpha.0.16a     03/24/95 by Dieter Bayer
  1472. Added support for targa type 11 files
  1473. Added support of high resolution counter (64bit), currently up to 15 decimal 
  1474.  digits are used for counter output (counter length defined in FRAME.H)
  1475. Changed stats screen layout
  1476. Changed BOUND_HUGE to 2e10 to avoid floating point overflow 
  1477.  as noted by Jim McElhiney
  1478. Fixed wrong COMMA_TOKEN in TOKENIZE.C
  1479. Fixed unitialized color bug in material_map
  1480.  
  1481. 3.alpha.0.16     03/13/95 by Chris Young
  1482. Added #if (COND) #else #end and #if (COND) #end parsing.
  1483. Misc fixes and things necessary for #if and future conditionall stuff.
  1484. Full sync of all files.
  1485.  
  1486. 3.alpha.0.15n     03/10/95 by Chris Young
  1487. Fixed Make_RGB bug in Create_Finish
  1488. Deleted extra braces in default color maps
  1489. Changed && to || in deciding when to do reflection
  1490.  
  1491. 3.alpha.0.15m     03/08/95 by Dieter Bayer
  1492. Added colored reflections (finish { reflection <COLOR> } )
  1493. Added individual ambient color (ambient <COLOR>). Note that a modifications
  1494.  to Parse_Colour() has still to be made to be able to parse only one float.
  1495.  Currently there's only a temporary fix in EXPRESS.C as suggested by Chris Y.
  1496. Added ambient_light { color <COLOR> } for global ambient lighting
  1497. Fixed "Initialization is only partially bracketed" warnings
  1498. Fixed bug in POLY.C
  1499.  
  1500. 3.alpha.0.15l     03/02/95 by Dieter Bayer
  1501. Changed no_hierarchy to hierarchy keyword (switch by on/off, true/false, ...)
  1502. Fixed bug in Bool_Flag() in OBJECTS.H
  1503. Fixed bug in height field scaling (it now works according to the docs)
  1504. Fixed bug in height field dda traversal
  1505. Fixed bug in height field triangle intersection
  1506. Made some changes to POLY.C
  1507. Renamed Point variables in MESH.C
  1508.  
  1509. 3.alpha.0.15k     02/28/95 by Chris Young
  1510. Added repeat warp with offset and flip.  For example:
  1511.   warp {repeat 3*x offset <0,0.2,0.5> flip y}
  1512.   Repeats the pattern every 3 units in the x direction.  Offsets
  1513.    each successive copy by "offset".  Offsets accumulate.
  1514.    Flip alternate odd/even copies in the specified direction.  Specifically
  1515.    "flip y" does "scale <1,-1,1>" to odd copies.
  1516. Deleted translate, rotate, scale & transform inside warp{...} stmnt.
  1517. Misc internal warp changes and bug fixes.
  1518.  
  1519. 3.alpha.0.15j     02/27/95 by Dieter Bayer
  1520. Added automatic resizing of symbol and constant tables
  1521. Changed triangle mesh triangle texture syntax to texture { Name }
  1522. Fixed bug in height field bounding box calculation
  1523. Fixed some compiler warnings
  1524.  
  1525. 3.alpha.0.15i     02/23/95 by Dieter Bayer
  1526. Modified height field normal calculation and triangle intersection (small speed-up)
  1527. Fixed a bug in height field intersection testing
  1528.  
  1529. 3.alpha.0.15h     02/23/95 by Dan Farmer
  1530. Added 16 bit grayscale output for all output types (tga, tga-compressed,
  1531. ppm, raw, dump).  Currently uses +FxH commandline switch (where "x" is
  1532. the mode), but may be changed to a +Q setting in the future.  Sets the
  1533. grayscale palette for preview mode when 16 bit output mode is in effect.
  1534.  
  1535. 3.alpha.0.15g     02/23/95 by Dieter Bayer
  1536. Added individual texturing of triangles to triangles meshes
  1537. Merged calls to functions for atmospheric effects into two new functions:
  1538.   Do_Infinite_Atmosphere() and Do_Finite_Atmosphere() to avoid a copy of
  1539.   all these calls in RENDER.C and VBUFFER.C
  1540.  
  1541. 3.alpha.0.15f     02/22/95 by Chris Young
  1542. Added warp{...} statement to Parse_Pattern
  1543. Implemented turbulence warp and transformation warp
  1544. Included hooks for repeat, spiral and black_hole warps.
  1545. Added WARPS.C and WARPS.H
  1546. Updated DJGCC & Borland make files (need to verify dependency)
  1547.  
  1548. 3.alpha.0.15e     02/22/95 by Dieter Bayer
  1549. Added the call to plot_pixel() to Supersample() that I removed earlier
  1550. Fixed bug in height field bounding box calculation (PARSE.C)
  1551.  
  1552. 3.alpha.0.15d     02/20/95 by Dieter Bayer
  1553. Fixed bug in HFIELD.C (DDA setup)
  1554. Fixed bug in QUADRICS.C (intersection test)
  1555.  
  1556. 3.alpha.0.15c     02/15/95 by Dieter Bayer
  1557. Added triangle_mesh syntax
  1558. Added pseudo-number generator in TEXTURE.C
  1559. Rewrote HFIELD.C
  1560. Changed triangle mesh data structure (normals of unsmoothed triangles
  1561.   are now also stored as indices into the normal list)
  1562. Changed calls to rand() and srand() into calls to POV_RAND() and POV_SRAND()
  1563. Replaced In_Polygon with a much faster version by Eric Haines from GGems IV
  1564. Removed support for raw files
  1565. Removed unnecessary call to display_plot() from Supersample() in RENDER.C
  1566. Removed unnecessary function surface_area() from BBOX.C
  1567. Fixed bug in Solve_Polynomial() with higher order polynomials
  1568.  
  1569. 3.alpha.0.15b     02/13/95 by Dieter Bayer
  1570. Added smoothing to triangle mesh object
  1571. Added raw keyword to triangle mesh syntax to specify the raw file
  1572. Added autodetection of 9, 12, and 18 numbers/triangle raw file format
  1573. Fixed several bugs in MESH.C
  1574. Fixed bug that occured when the priority queue was resized (BBOX.C)
  1575. Fixed bug in VBUFFER.C
  1576. Fixed bug with +ms option to make it work as intended
  1577. Fixed bug with help option -h
  1578. Fixed bug in BBOX.C with number of objects smaller than threshold (+mb)
  1579.  
  1580. 3.alpha.0.15a     02/06/95 by Dieter Bayer
  1581. Added triangle mesh object (reads RAW format; no smoothing yet)
  1582. Added -h? options to show help screens
  1583. Changed BOUND.C: SNGL instead of DBL is used to store bounding boxes 
  1584.  (Beware that Assign_Vector() doesn't work with bounding boxes; use
  1585.  Assign_BBox_Vector() instead. Be aware of the new bbox macros in FRAME.H);
  1586.  functions to build and intersect a bbox tree are now reentrant.
  1587. Changes to BLOB.C (max. number of elements is arbitrarily set to 1,000,000; 
  1588.  data structure changed; bounding sphere stuff moved into BSPHERE.?)
  1589. Changed sky_sphere to make use of the filter and transmittive parts
  1590.  of a color (filtered and unfiltered translucency)
  1591. Changed help and credit screens
  1592. Changed TRIANGLE.C
  1593. Fixed bug with transformed spotlights
  1594. Fixed bug in Compute_Triangle() that set correct triangles as degenerate
  1595. Renamed BOUND.? into BBOX.? (remove BOUND.?)
  1596. Created BSPHERE.C and BSPHERE.H
  1597.  
  1598. 3.alpha.0.15      01/30/95 by Chris Young
  1599. Added "average" pattern type for pigment, normal and textures.
  1600. Includes Xander's latest truetype code.
  1601. Misc. cleanups.
  1602.  
  1603. 3.alpha.0.14i     01/29/95 by Chris Cason
  1604. Added PPM & PGM file format support for image_map, bump_map,
  1605.  material_map and height_field.  Added PPM output via +FP switch.
  1606. New files PPM.C, PPM.H, PGM.C, PGM.H files.  Make files must be updated.
  1607.  
  1608. 3.alpha.0.14h     01/25/95 by Dieter Bayer
  1609. Added cylindrical light source.
  1610.  
  1611. 3.alpha.0.14g     01/24/95 by Chris Young
  1612. Added "turb_depth" keyword for fog & mist.  The "turbulence <nnn,nnn,nnn>"
  1613.  continues to control the size of the turbulence pattern in the x,y,z 
  1614.  directions while turb_depth varies the front-to-back depth of the turb.
  1615.  Typical turb_depth should be 0.0 to 1.0 with the default 0.5.
  1616. Fixed highlights and fill lights as requested by DMF
  1617. Misc cleanup of "variable assigned value that is never used" warnings.
  1618.  
  1619. 3.alpha.0.14f     01/23/95 by Dieter Bayer
  1620. Added auto-bounding of elliptical paraboloids
  1621. Fixed bug with distance=0 in fogs
  1622. Fixed problems in Compute_Quadric_BBox()
  1623.  
  1624. 3.alpha.0.14e     01/20/95 by Chris Young
  1625. Height field bug fixed
  1626. Removed duplicate call to close_all
  1627. Minor BC++ 4.5 fixes
  1628.  
  1629. 3.alpha.0.14d     01/18/95 by Dieter Bayer
  1630. Changed calculation of attenuation for fading light sources
  1631.   (light color at fade_distance equals the specified light color)
  1632. Fixed bug with mists/fogs and infinite rays
  1633. Fixed bug with multiple fogs
  1634. Fixed bug with atmosphere and area light sources
  1635. Fixed bug with clipped polys
  1636.  
  1637. 3.alpha.0.14c     01/13/95 by Dieter Bayer
  1638. added fade_distance to light sources
  1639. Changed calculation of attenuation for fading light sources
  1640. Changed falloff_power to fade_power
  1641. Fixed bug with overlapping rainbows
  1642.  
  1643. 3.alpha.0.14b     01/10/95 by Chris Young
  1644. Implemented built-in float identifiers "on", "true", "yes" with value 1.0
  1645. Implemented built-in float identifiers "off", "false", "no" with value 0.0
  1646. Added float functions 
  1647.      acos(A)   arc-cosine of A
  1648.      asin(A)   arc-sine of A
  1649.      tan(A)    tangent of A
  1650. Added additive (non-filtered) transparency via 5th color channel.
  1651. Added "transmit" keyword (for example "color red 0.6 transmit 0.7")
  1652. Added "rgbt" and "rgbft" keywords (similar to "rgbf" but for transmit).
  1653.   The amount of the transmit value is the percent of light that is allowed
  1654.    to pass through in a non-filtered way.  Note that light from the object
  1655.    itself is diminished by (1.0-transmit) so a transmit value of 1.0 means
  1656.    that the object totally disapears.
  1657.  
  1658. 3.alpha.0.14a     01/10/95 by Dieter Bayer
  1659. Added volume rendering to simulate atmospheric scattering
  1660. Added light attenuation due to light source distance
  1661. Changed sky_blend to sky_sphere 
  1662. Fixed a bug in PARSE.C with planes and 'zero' normals
  1663. Fixed a bug in POVRAY.C that occured when diskwrite was suppressed
  1664. Removed YZFog
  1665. Removed some unused variables from LIGHTING.C and RENDER.C
  1666. Removed (temporarily) support of bounded fog (this is probably something for
  1667.   version 4 because a redesign of the intersection functions for a better
  1668.   CSG handling would help pretty much)
  1669.  
  1670. 3.alpha.0.14      01/09/95 by Chris Young
  1671. Added declared fog, rainbow, skyblend
  1672. Added several new keywords to parser but have not yet implemented them
  1673. Fixed empty bounded_by or clipped_by bug
  1674.  
  1675. 3.alpha.0.13g     01/05/95 by CY
  1676. Adds texture_map and makes changes to tiles & material_map
  1677. Open handle fix from Eduard
  1678.  
  1679. 3.alpha.0.13f     01/02/95 by Xander uploaded by CY
  1680. TRUETYPE.C changes to fix kerning
  1681.  
  1682. 3.alpha.0.13e     01/02/95 by Dieter Bayer
  1683. Fixed bounding box problem with clipped planes
  1684. Changed MAX_INTERSECTIONS to MAX_FOG_HITS in ATMOSPH.C
  1685.  
  1686. 3.alpha.0.13d     12/94 by Eduard Schwan
  1687. Changes to Mosaic preview
  1688.  
  1689. 3.alpha.0.13c     12/22/94 by Dieter Bayer
  1690. changed type BLOBTYPE to type int in BLOB.C function headers.
  1691.  
  1692. 3.alpha.0.13b     12/94 by Chris Young
  1693. Changes for static/global stuff accidently left out of 13.
  1694.  
  1695. 3.alpha.0.13a     12/21/94 by Dieter Bayer
  1696. removed unneeded variable cd1 from BOUND.C
  1697. removed unneeded function declaration from PARSE.C
  1698. fixed some bugs in JULIA.C
  1699. fixed bug in BLOB.C
  1700. changed maximum blob component size to 65000. Storage data type is
  1701.   defined now to make it easy to change (currently unsigned short)
  1702. made some minor changes to the options layout in OPTIONS.C
  1703.  
  1704. 3.alpha.0.13      12/19/94 by Chris Young
  1705. About a gazillion functions and variables made static and other
  1706.  changes suggested by Clint.
  1707. Patches for fussy Unix compilers by Steve Demlow
  1708. Sync up of all 3.0.12 patches
  1709.  
  1710. 3.alpha.0.12h-k   12/18/94 by Dieter Bayer
  1711. changed max. number of blob component to 65000 (values are now
  1712.   stored in unsigned shorts to save memory)
  1713. added credit screen (has to be updated).
  1714. added quaternion julia object by Paul Massinimo. New files JULIA.C & JULIA.H
  1715. added Steve Anger's patch to fix infinite loop in POV_RECLLOC()
  1716. added initializations to expressions in EXPRESS.C
  1717. fixed memory leakages in BLOB.C, PARSE.C, POLYGON.C, VBUFFER.C
  1718. fixed output buffer size bug (negativ buffer size if buffer was > INT_MAX byte)
  1719. fixed default filename bug in POVRAY.C. It wasn't displayed (e.g. data.tga)
  1720. changed max. index value (has to be smaller than 1) in Rainbow() and 
  1721.   Skyblend() to suit Compute_Pigment()
  1722. changed usage screen
  1723. changed options screen
  1724. changed call to Build_Bounding_Slabs() to always print number of objects
  1725. changed blob component limit to MAX_INT
  1726. changed 'int register' to 'register int' in EXPRESS.C
  1727. moved usage, option, and stats stuff into OPTIONS.C/OPTIONS.H
  1728. moved grid stuff from GRIDS.H into RENDER.C (delete GRIDS.H!)
  1729. removed some declared but unused variables
  1730. removed all unnecessary MATRIX referencing in function parameters. (vectors 
  1731.   and arrays are always passed by reference so referencing isn't necessary.)
  1732. removed unnecessary 'External variables' section from .c files
  1733.   (external variables are included via include files)
  1734.  
  1735. 3.alpha.0.12g   by Chris Young
  1736. Split PARSE.C into PARSE.C & PARSTXTR.C. Added also PARSTXTR.H
  1737. Misc static changes, bug fixes
  1738.  
  1739. 3.alpha.0.12f   12/10/94 by Eduard Schwan
  1740. Misc bug fixes in MEMIO.C, FRAME.H, TTF.C necessary for Mac.
  1741.  
  1742. 3.alpha.0.12e   12/12/94 by Dieter Bayer
  1743. Changed blob component maximum (=30000)
  1744. Changed blob intersection list (now dynamically allocated)
  1745. Changed command line option +UR to +UD and +UU to +UR.
  1746. Changed calls to Fog() and Rainbow(). They are no longer called from
  1747.   Determine_Apparent_Colour(). They are only called from Trace()
  1748.   and Trace_Primary_Ray().
  1749. Changed depth threshold for superquadric ellipsoids.
  1750. Fixed roughness=0 bugs in PARSE.C.
  1751.  
  1752.  
  1753. 3.alpha.0.12a thru d   12/09/94 by Chris Young
  1754. Implemented normal_map for all normals.
  1755.    normal_map {
  1756.      [0.0 NORMAL_BODY]
  1757.        ....
  1758.      [N.N NORMAL_BODY]
  1759.    }
  1760. Implemented slope_map for pattern-based normals.
  1761.    slope_map {
  1762.      [0.0 <HEIGHT,SLOPE>]
  1763.        ....
  1764.      [N.N <HEIGHT,SLOPE>]
  1765.    }
  1766. Changed scale on scallop_wave to match other wave types.
  1767. TTF bug fixes and split characters into individual objects so that
  1768.   autobounding works.
  1769. Added exit code parameter to FINISH_POVRAY(n).  Now FINISH_POVRAY(n)
  1770.   should call exit(n);
  1771. Several incarnations of quilted taken in/out.  Final version uses
  1772.   Dan's normal and CY's pigment.
  1773. Numerous bug-fixes by Eduard and Dieter.
  1774. Total rewrite of how pattern-based normals work.  New method fixes
  1775.   bad design flaw but produces slightly different results.  At least
  1776.   it works consistently and efficently.
  1777.  
  1778.  
  1779. 3.alpha.0.12    11/19/94 by Chris Young
  1780. Superelipsoids added by Dieter & Xander (new SUPER.C & SUPER.H)
  1781. Major rewite of color_map code to allow pigment_map and
  1782.  to pave the way for normal_map, slope_map, & texture_map
  1783. Implemented pigment map for all except image_map
  1784. Rewrite of quilted pigment & normal
  1785. Proportional spacing for TTF added by Xander
  1786. Cylindrical camera models by Dieter
  1787. Included IBM.OLD & CONFIG.OLD for compilers that aren't yet ported
  1788. Fixed bug in mosaic preview by Eduard
  1789.  
  1790.  
  1791. 3.alpha.0.11    11/01/94 by Dieter Bayer
  1792. Added improved bounding hierarchy creation to BLOB.C.
  1793. Added initialization of light list in LIGTHING.C.
  1794. Added test for focal blur to VBUFFER.C.
  1795. Added test for 'once' images in Test_Opacicty() (fixes POV3BUG.POV bug).
  1796. Added code to ibm.c that uses gotoxy(1,24) instead of gotoxy(1,15) in 
  1797.   IBM_Finish() if compiled for DJGPP to avoid segmentation violation.
  1798. Changed polygon data structure (saves memory for copied polygons).
  1799. Removed unnecessary workaround for POV_REALLOC() in CSG.C.
  1800. Removed unnecessary 'Inverted' element from TTF structure.
  1801. Removed 'Rewritten and ...' lines from function headers.
  1802. Removed single '/* [DB ?/94] */' comments.
  1803.  
  1804.  
  1805. 3.alpha.0.10    10/30/94 by Chris Young
  1806. Misc lbuffer & vbuffer fixes by Dieter
  1807. Misc memio fixes by Steve anger
  1808. Major rewrite of pigment & normal code by CY
  1809.   Added PATTERN.C & PATTERN.H
  1810.   Moved many routines and rewrote parameter lists.
  1811.   Added normal{...} types agate, bozo, brick, checker, crackle, gradient,
  1812.     granite, hexagon, leopard, mandel, marble, onion, radial, spiral1,
  1813.     spiral2, spotted & wood.
  1814.   Note syntax for normal is that bump amount is always last. i.e.
  1815.     normal {gradient <DIRECTION>, AMOUNT ...}
  1816.     normal {mandel ITERATIONS, AMOUNT ...}
  1817.   Modified syntax for spiral1 and spiral2 such that keyword must be
  1818.     followed by float value specifying number of arms.  Previously
  1819.     octaves was used. i.e. pigment{spiral1 5}
  1820.   Added wave type keywords for most pattern based pigments and normals
  1821.     ramp_wave, triangle_wave, sine_wave, scallop_wave
  1822. Note in 3.alpha.0.9 VECT.C was renamed MATH.C & MATH.H but this caused
  1823.   conflicts with <math.h> system file.  Now renamed it to POLYSOLV.C &
  1824.   POLYSOLV.H. Moved some macros from MATH.H to FRAME.H.
  1825. Note only the Borland & DJGCC make files are current.  Dependancy info
  1826.   in IBMGCC.MAK may be wrong.
  1827.  
  1828.  
  1829. 3.alpha.0.9    09/28/94 by Dieter Bayer
  1830. Added transformations to blob components (translation, scaling, rotation).
  1831. Added multi-textured blob support.
  1832. Added optional strength keyword to new blob component syntax.
  1833. Added no_hierarchy keyword to blobs to avoid the creation of an internal
  1834.   bounding sphere hierarchy.
  1835. Added improved color calculation for metallic surfaces.
  1836. Added vista buffer (+uv option, +upxx option for descending method).
  1837. Added light buffer (+ul option, +upxx option for descending method).
  1838. Added drawing of vista rectangles; kind of a preview (+ur option).
  1839. Added splitting of bounded unions with finite children (+su option).
  1840. Added code to resize priority queue in BOUND.C to avoid queue overflows.
  1841. Added code to allocate/free priority code outside Bounds_Intersect().
  1842. Added code to BOUND.C that puts all infinite objects in the first node
  1843.   of the bounding hierarchy root. Thus the hierarchy won't "mess up".
  1844. Added infinite flag to objects to avoid testing the bounding slab of 
  1845.   infinite objects during bounding hierarchy traversal. This saves 
  1846.   time because the bounding box of an infinite object will always be hit.
  1847. Added code to Parse_Object_Mods() to calculate the bounding box of any
  1848.   bounding or clipping objects and to assign the smaller one to the object
  1849.   if the object's bounding box is larger.
  1850. Added code to Parse_Camera() to make sure that camera vectors are
  1851.   perpendicular to each other. That is a must for the vista buffer.
  1852. Added code to Intersect_Box() to determine which side is hit in those
  1853.   cases where intersecion points are close to each other. This fixes
  1854.   surface acne problems at the edges of a box due to the usage of the
  1855.   wrong surface normal (see CHARS.POV e.g).
  1856. Modified BOUND.C to work with vista/light buffer.
  1857. Fixed memory leaks in DISCS.C, LATHE.C, PRISM.C, SOR.C, and TORUS.C.
  1858. Fixed threshold problem in normal calculation of cones/cylinders.
  1859. Created missing .h files for most .c files.
  1860. Lots of code "clean-ups" and re-formatting.
  1861.  
  1862. 3.alpha.0.8    09/22/94 by CEY
  1863. From Steve Anger:
  1864.   Memory management parts of MEMIO.C See comments in MEMIO.C for details.
  1865.  
  1866. From Chris Young:
  1867.   Split "Information" printf function into 3 new functions "Render_Info",
  1868.      "Status_Info" and "Debug_Info".
  1869.   All printf to stdout or stderr now converted to new i/o functions such
  1870.      as Render_Info, etc.
  1871.   All exit() calls re-directed through "Error".
  1872.   Fixed +ER +EC bug reported by DMF.
  1873.   Fixed TRUETYPE.C MAC macro by Eduard.
  1874.   Major rewrite of all aspects of IBM.C including text and video.
  1875.     Text changes are work-in-progress.  Requires CONIO.H macros a la Borland.
  1876.     Video requires Kendall's PMODE.LIB for all compilers.  Note DJGCC is 
  1877.     unsupported but has been faked with compatible macros.  VESA.C no longer
  1878.     required. TIGA support deleted. Targa_Plus code needs rewritten but is
  1879.     stubbed out.
  1880.   Misc bug fixes.
  1881.  
  1882. 3.alpha.0.7    08/31/94 by CEY
  1883. The following items from Dieter
  1884.    - memory leackage in BLOB.C fixed (bounding hierarchy is deleted now)
  1885.    - 'CROSSBLOB' bug fixed 
  1886.    - fillite light source bug fixed (as mentioned by Dan Farmer)
  1887.    - 'toroids in CSG' bug fixed (larger tolerance in Inside_Poly())
  1888.    - name Polygon changed to Polyg in POLYGON.C/POLYGON.H.
  1889.    - Only one function is now used to solve a polynomial
  1890.        c[0] * x^n + c[1] * x^(n-1) + ... + c[n-1] * x + c[n] = 0.
  1891.      Solve_Polynomial(n, c, r, sturm, epsilon)
  1892.        n       - order of polynomial
  1893.        c       - coefficients
  1894.        r       - roots found
  1895.        sturm   - use sturmian root solver (TRUE)
  1896.        epsilon - root elimination tolerance, i.e. roots with
  1897.                  |x| < epsilon will be eliminated (epsilon = 0
  1898.                  means that no roots will be eliminated)
  1899. From Eduard the mosaic preview.  Uses +SPnn +SEnn
  1900.  Requires new display_plot_rectangle in MACHINE.C
  1901.  Does not do file output.
  1902. From CEY:
  1903.  Misc bug fixes from various sources.
  1904.  More work-in-progress on error messages etc.
  1905.  
  1906. 3.alpha.0.6    08/19/94 by Dieter Bayer
  1907. Added new camera models and camera ray pertubation.
  1908. Added lathe primitve.
  1909. Added polygon primitive.
  1910. Added prism primitive.
  1911. Added surface of revolution primitive.
  1912. Added "rainbow" and "skyblend" (ATMOSPH.C).
  1913. Added cylindrical blobs and blob bounding hierarchy.
  1914. Added improved torus primitive (faster intersection testing)
  1915. Added two spiral textures.
  1916. Added Compute_???_BBox() to all objects.
  1917. Added function Solve_Polynomial_With_Root_Elimination() to VECT.C that uses 
  1918.  order reduction to eliminate roots at 0 (helps avoiding "surface acne").
  1919. Added function Solve_Polynomial() to VECT.C to easily solve
  1920.  a polynomial of order n (sturm can be specified).
  1921. Added code for tighter bounding boxes of CSG intersections.
  1922. Added cache for shadow testing to avoid repeated tests with layered textures.
  1923. Added test for opaque objects that speed up Filter_Shadow_Ray().
  1924. Added 4x4-matrix inversion to MATRICES.C.
  1925. Added new vector macros (see VECTOR.H).
  1926. Added #defines to .H files so that they are just processed once if
  1927.  they get included more than once.
  1928. Added memory clean-up to HFIELD.C.
  1929. Fixed iridescence bug due to uninitialized values in Create_Finish().
  1930. Fixed bug in sbisect() in VECT.C.
  1931. Fixed camera bug (ray direction parallel to y-axis).
  1932. Fixed "trace level bug". Now the correct maximum level traced is shown.
  1933. Fixed memory leakage bug in Free_Noise_Tables().
  1934. Fixed problems with CSG and declared height fields (most probably).
  1935. Fixed bug in Where_Error().
  1936. Moved Add_Pigment() from LIGHTING.C to PIGMENT.C and made all pigment
  1937.  functions static.
  1938. Moved Perturb_Normal() from LIGHTING.C to NORMAL.C and made all normal
  1939.  perturbing functions static.
  1940. Moved all fog functions to ATMOSPH.C and "merged" them into one function.
  1941. Changed POV 2.x difficult_coeffs() in VECT.C to version from POV 1.0
  1942.  to solve problems with vanishing objects (new version is still there).
  1943.  Problems with surface acne should be solved by root elimination.
  1944. Changed normal functions so that a pointer to the intersection structure
  1945.  is passed instead of the intersection point (more flexible).
  1946. Changed normal calculation of boxes. It now uses information on the side
  1947.  hit by the ray that was derived during intersection testing.
  1948. Changed some global functions to static.
  1949. Changed height field intersection testing to use only one function
  1950.  for CSG and non-CSG height fields.
  1951. Changed disc functions to get tighter bounds and to increase speed.
  1952. Changed normal calculation of smooth triangles to increase speed.
  1953. Renamed varibales min and sec to minutes and seconds in POVRAY.C.
  1954. Removed unused global variable Shadow_Test_Flag.
  1955. "Clean-up" of most primitive related files (cosmetic changes, added
  1956.  comments, small speed-ups).
  1957. Compressed Targa now supported via +FC switch.
  1958.  
  1959. 3.alpha.0.5    08/08/94
  1960. Fixed vrotate bug.
  1961. Added Dan Farmer's focal blur
  1962. Added Dan Farmer's quilted normal pattern
  1963. Fixed truetype problems.  Note .TTF file must be in current directory.
  1964.   Cannot find TTF on +L paths.
  1965. New error message dumps lines on parse errors.
  1966. Relational operators < <= != = >= > added.  Note relational expressions
  1967.   must be enclosed in parens.
  1968. Logical operators & | ! added.
  1969. Conditional expressions (c)?a:b added.
  1970.  
  1971. 3.alpha.0.4    07/16/94
  1972. Added Dieter's patches to remove various cache values.
  1973. Added Dieter's patches to combine object flags into bit flags.
  1974. Began outlining new message output functions in new MEMIO.C
  1975. Converted Xander's TRUETYPE.C to 3.x.  It doen't work yet.
  1976. Deleted TIGA support from Borland version.
  1977.  
  1978. 3.alpha.0.3    06/27/94
  1979. Fixed typo in VSumSqr macro in VECTOR.H affecting crackle
  1980. Fixed uninitalized Background_Colour in PARSE.C
  1981. Fixed 0.0 constant in Warn in PARSE.C
  1982. Fixed STAT.OUT that got stuck "on"
  1983. Added Automatic Depth Control (ADC) from Dan Farmer
  1984. Added fill lights, number of waves, fisheye, new fog types, and
  1985.   brick pigment from Dan Farmer
  1986. Added first round rewrite of expression parser.  Includes the following
  1987.   functions:
  1988.   These return float values...
  1989.     abs(A)        absolute values of A
  1990.     atan2(X,Y)    arc-tangent in radians of (X/Y)
  1991.     ceil(A)       round up to next integer value A
  1992.     clock         value of +K switch
  1993.     cos(A)        cosine of A where A is in radians
  1994.     degrees(A)    convert A from radians to degrees
  1995.     div(A,B)      integer part of (A/B)
  1996.     exp(A)        e-to-the A power
  1997.     int(A)        integer part of A
  1998.     log(A)        base e logarithm of A
  1999.     max(A,B)      maximum of A and B
  2000.     min(A,B)      minimum of A and B
  2001.     mod(A,B)      A modulo B, the remainder of A/B
  2002.     pi            constant 3.3.1415926535897932384626
  2003.     pow(A,B)      raise A to the B power
  2004.     radians(A)    convert A from degrees to radians
  2005.     sqrt(A)       square root of A
  2006.     vdot(V1,V2)   dot product of vectors V1 and V2
  2007.     vlength(V1)   length of vector V1
  2008.     version       value of version variable
  2009.   These return vector values...
  2010.     vaxis_rotate(V1,V2,D)     rotate point V1 by D degrees about any 
  2011.                                 arbitrary axis V2 (not just coordinate
  2012.                                 axes) 
  2013.     vcross(V1,V2)             cross product of V1 X V2
  2014.     vnormalize(V)             scale V to unit length
  2015.     vrotate(V1,V2)            rotate point V1 about coordinate axes by
  2016.                                 V2 amount of degrees.  For example:
  2017.                                 vrotate(V1,30*y) rotates V1 by 30 degrees
  2018.                                 about y-axis. 
  2019.     x, y, z                   constant unit vectors
  2020. Added expression parsing to colors: White*0.536-Red*0.1
  2021. Made "color" keyword optional everywhere except old style color maps.
  2022.  
  2023.  
  2024. 3.alpha.0.2    06/02/94
  2025. Added Steve Anger's memory cleanups.
  2026. Added crackle pigment but it contains a negative sqrt bug.
  2027. Added modified version of Dan Farmer's irid code.
  2028.    irid {FLOAT [thickness FLOAT] [turbulence FLOAT] }
  2029.    Other irid options to be added later.
  2030. Fixed Antialias_Threshold bug from 3a.0.1
  2031. Changed several .INI variables so the only set defaults but do not
  2032.    turn options on.
  2033. Changed variable name in GIFDECOD.C per Eduard's request.
  2034. Fixed spelling of sturm in PARSE.C error message.
  2035.  
  2036.  
  2037. 3.alpha.0.1    04/28/94
  2038. Implemented .INI file parsing system.  Works with switches and .DEF
  2039.    files too.
  2040. Eliminated case sensitivity option in TOKENIZE.C
  2041. Eliminated +T case sensitive switch.
  2042. Eliminated sub-options of +V switch (needs more work).
  2043. Changed when +SR, +SC, +ER, +EC take effect when using fractional values.
  2044.    For example: +W320 +SR0.1 +W640 used to result in +SR32
  2045.     now late binding results in +SR64.  Order of specifing switches no 
  2046.     longer hurts.
  2047. Now +B0 or -B0 turns off any previous +Bnnn setting.  Formerly any +B setting
  2048.    could not be overridden once set.  Now it can be.
  2049.  
  2050. 3.alpha.0.0    04/06/94
  2051. Initial 3.0 version converted all VECTOR & COLOUR structs to arrays.
  2052. Added +Xnnn command-line switch to only check for keypress every nnn pixels.
  2053.